From f8826dd3ebcd290cf2762a987e00a88584952898 Mon Sep 17 00:00:00 2001 From: marsalva Date: Sun, 15 Feb 2026 22:41:01 +0000 Subject: [PATCH] Actualizar server.js --- server.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/server.js b/server.js index e2cbcae..cb4fa77 100644 --- a/server.js +++ b/server.js @@ -587,18 +587,15 @@ app.get("/discovery/keys/:provider", authMiddleware, async (req, res) => { } catch (e) { res.status(500).json({ ok: false }); } }); +// Ruta para obtener servicios aceptados con datos de operarios y gremios app.get("/services/active", authMiddleware, async (req, res) => { try { const q = await pool.query(` SELECT s.*, u.full_name as assigned_name, - g.name as guild_name, - -- Determinamos el estado operativo - CASE - WHEN (s.raw_data->>'scheduled_date') IS NULL OR (s.raw_data->>'scheduled_date') = '' THEN 'asignado_operario' - ELSE 'citado' - END as estado_operativo + u.phone as worker_phone, + g.name as guild_name FROM scraped_services s LEFT JOIN users u ON (s.raw_data->>'assigned_to')::int = u.id LEFT JOIN guilds g ON (s.raw_data->>'guild_id')::int = g.id @@ -611,6 +608,21 @@ app.get("/services/active", authMiddleware, async (req, res) => { } catch (e) { res.status(500).json({ ok: false }); } }); +// Ruta para fijar la cita (Mueve el servicio de la izquierda a la derecha) +app.put("/services/set-appointment/:id", authMiddleware, async (req, res) => { + try { + const { id } = req.params; + const { date, time } = req.body; + // Actualizamos raw_data inyectando la fecha y hora + await pool.query(` + UPDATE scraped_services + SET raw_data = raw_data || jsonb_build_object('scheduled_date', $1, 'scheduled_time', $2) + WHERE id = $3 AND owner_id = $4 + `, [date, time, id, req.user.accountId]); + res.json({ ok: true }); + } catch (e) { res.status(500).json({ ok: false }); } +}); + app.get("/discovery/mappings", authMiddleware, async (req, res) => { try {