diff --git a/server.js b/server.js index 0639c1e..ffc2ede 100644 --- a/server.js +++ b/server.js @@ -1970,10 +1970,17 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { let citaYaPaso = false; if (tieneCitaConfirmada && datosExpediente.cita) { - const hoyTime = new Date().setHours(0, 0, 0, 0); + const ahora = new Date(); const [y, m, d] = datosExpediente.cita.split('-'); - const citaTime = new Date(y, m - 1, d).setHours(0, 0, 0, 0); - if (citaTime < hoyTime) citaYaPaso = true; + // Si no hay hora concreta, solo se considera "pasada" al cambiar de día (fin del día) + let horaFin = 23, minFin = 59; + if (datosExpediente.hora_cita && datosExpediente.hora_cita.includes(':')) { + const [hh, mm] = datosExpediente.hora_cita.split(':'); + horaFin = parseInt(hh, 10) + 1; // margen aprox. de duración del servicio + minFin = parseInt(mm, 10); + } + const finVentanaCita = new Date(y, m - 1, d, horaFin, minFin); + if (finVentanaCita < ahora) citaYaPaso = true; } const esEstadoFinal = @@ -1995,7 +2002,9 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { TU ÚNICO OBJETIVO: Informar al cliente que hemos recibido el aviso de su avería (${datosExpediente.averia}) y que estamos coordinando para asignarle un técnico en su zona. ⛔ PROHIBICIÓN ABSOLUTA: NO ofrezcas citas, NO des horas, NO agendes nada hasta que se le asigne un técnico.`; } else if (citaYaPaso) { - directivaEstricta = `🛑 ESTADO ACTUAL: LA CITA YA PASÓ (${datosExpediente.cita}). Informa que estamos tramitando su avería (${datosExpediente.averia}). NO AGENDES NADA.`; + directivaEstricta = `🛑 ESTADO ACTUAL: LA CITA (${datosExpediente.cita} ${tramoConfirmado}) YA DEBERÍA HABER PASADO, pero el servicio sigue en estado "citado" (no consta que se haya cerrado el parte de trabajo). +⚠️ NO afirmes que el técnico ya fue ni que el servicio está hecho. NO digas tampoco que la cita sigue por llegar, como si no hubiera pasado ya la hora. +TU OBJETIVO: Exprésate con duda de forma natural. Dile que según tus datos tenía cita a esa hora para su avería (${datosExpediente.averia}) y pregúntale directamente si el técnico ya pasó por su domicilio o si sigue esperando, para poder ayudarle mejor. NO AGENDES NADA hasta saberlo.`; } else if (esUrgencia) { directivaEstricta = `🛑 ESTADO ACTUAL: URGENCIA. Tranquiliza al cliente sobre su avería (${datosExpediente.averia}) y dile que el técnico está avisado. NO PROPONGAS HORAS.`; } else if (hayCitaPendiente) {