diff --git a/server.js b/server.js index 2fc0c02..8515545 100644 --- a/server.js +++ b/server.js @@ -1610,6 +1610,16 @@ async function procesarConIA(ownerId, mensajeCliente, datosExpediente) { const instruccionesExtra = settings.ai_custom_prompt || ""; const empresaNombre = userData?.full_name || "nuestra empresa"; + // 🧾 Condiciones de cobertura por compañía: cada regla tiene una "keyword" corta + // (ej. "santander") que buscamos DENTRO del campo Compañía del expediente, sin + // mayúsculas ni tildes. Así da igual si el texto viene envuelto en cosas de + // Multiasistencia/HomeServe (ej. "MULTI - Siniestros - Santander Generales + // proyecto Gesca") — con que contenga la palabra clave, coincide. + const normalizarTexto = (str) => String(str || "").toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g, ""); + const coverageRules = Array.isArray(settings.coverage_rules) ? settings.coverage_rules : []; + const companiaNormalizada = normalizarTexto(datosExpediente.compania); + const reglaCobertura = coverageRules.find(r => r.keyword && companiaNormalizada.includes(normalizarTexto(r.keyword))); + if (!settings.wa_ai_enabled) return null; const pSettings = userData?.portal_settings || {}; @@ -1998,6 +2008,10 @@ Eres el coordinador humano de "${empresaNombre}". Hablas de tú, de forma natura - ⛔ REGLA DE ORO DEL HORARIO: NUNCA propongas horas fuera de ese horario ni cruces el tramo de comer. - Fines de semana solo si es una urgencia. - Localidad del cliente actual: ${datosExpediente.poblacion || 'Localidad no especificada'}. +${reglaCobertura ? ` +--- 🧾 CONDICIONES DE COBERTURA PARA ESTA COMPAÑÍA (${datosExpediente.compania}) --- +${reglaCobertura.text} +Menciona esto SOLO si el cliente pregunta por costes, materiales, o qué cubre el seguro. No lo repitas si no viene a cuento.` : ''} --- ✅ HUECOS EXACTOS CALCULADOS POR EL SISTEMA --- ${agendaDisponibleTexto}