Actualizar server.js

This commit is contained in:
2026-03-05 15:23:11 +00:00
parent 5e0910f87b
commit 921cff73d2

View File

@@ -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" }); if (clientQ.rowCount === 0) return res.status(404).json({ ok: false, error: "Token inválido" });
const ownerId = clientQ.rows[0].owner_id; const ownerId = clientQ.rows[0].owner_id;
// Recuperamos los datos crudos del servicio // 🚨 CAMBIO AQUÍ: Recuperamos los datos crudos Y TAMBIÉN a quién está asignado
const serviceQ = await pool.query("SELECT raw_data FROM scraped_services WHERE id=$1 AND owner_id=$2", [serviceId, ownerId]); 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" }); 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 // Grabamos la solicitud en el jsonb para que el admin la vea en agenda.html
raw.requested_date = date; 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]); 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 }); res.json({ ok: true });
} catch (e) { } catch (e) {
console.error("Error agendando cita (book):", e); console.error("Error agendando cita (book):", e);