Actualizar server.js
This commit is contained in:
28
server.js
28
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);
|
||||
|
||||
Reference in New Issue
Block a user