From 921cff73d2ec92b1c91c785f0a5b5442bedf6e8d Mon Sep 17 00:00:00 2001 From: marsalva Date: Thu, 5 Mar 2026 15:23:11 +0000 Subject: [PATCH] Actualizar server.js --- server.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/server.js b/server.js index e0d2610..c01c2a3 100644 --- a/server.js +++ b/server.js @@ -640,11 +640,12 @@ app.post("/public/portal/:token/book", async (req, res) => { if (clientQ.rowCount === 0) return res.status(404).json({ ok: false, error: "Token inválido" }); const ownerId = clientQ.rows[0].owner_id; - // Recuperamos los datos crudos del servicio - const serviceQ = await pool.query("SELECT raw_data FROM scraped_services WHERE id=$1 AND owner_id=$2", [serviceId, ownerId]); + // 🚨 CAMBIO AQUÍ: Recuperamos los datos crudos Y TAMBIÉN a quién está asignado + const serviceQ = await pool.query("SELECT raw_data, assigned_to, service_ref FROM scraped_services WHERE id=$1 AND owner_id=$2", [serviceId, ownerId]); if (serviceQ.rowCount === 0) return res.status(404).json({ ok: false, error: "Servicio no encontrado" }); - const raw = serviceQ.rows[0].raw_data || {}; + const srv = serviceQ.rows[0]; + const raw = srv.raw_data || {}; // Grabamos la solicitud en el jsonb para que el admin la vea en agenda.html raw.requested_date = date; @@ -653,6 +654,27 @@ app.post("/public/portal/:token/book", async (req, res) => { await pool.query("UPDATE scraped_services SET raw_data = $1 WHERE id = $2", [JSON.stringify(raw), serviceId]); + // ========================================================= + // 🚨 MAGIA: AVISAR AL OPERARIO POR WHATSAPP AL INSTANTE + // ========================================================= + if (srv.assigned_to) { + const workerQ = await pool.query("SELECT full_name, phone FROM users WHERE id=$1", [srv.assigned_to]); + if (workerQ.rowCount > 0) { + const w = workerQ.rows[0]; + const ref = srv.service_ref || raw["Referencia"] || serviceId; + const clientName = raw["Nombre Cliente"] || raw["CLIENTE"] || "El cliente"; + + // Formateamos la fecha para que se lea bonita en WhatsApp + const [y, m, d] = date.split('-'); + const dateFormatted = `${d}/${m}/${y}`; + + const msg = `🔔 *¡NUEVA CITA SOLICITADA!*\n\nHola ${w.full_name}, ${clientName} acaba de elegir un hueco para el expediente *#${ref}*.\n\n📅 *Fecha:* ${dateFormatted}\n⏰ *Hora aprox:* ${time}\n\nEntra en tu App (Agenda) para confirmarla o rechazarla.`; + + // Enviamos el WA de aviso al trabajador + sendWhatsAppAuto(w.phone, msg, `cliente_${ownerId}`, false).catch(console.error); + } + } + res.json({ ok: true }); } catch (e) { console.error("Error agendando cita (book):", e);