fix: detectar rechazo T&C primero para evitar falso positivo con 'no acepto'
This commit is contained in:
@@ -602,11 +602,11 @@ class BotService {
|
||||
iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $messageText) ?: $messageText
|
||||
));
|
||||
|
||||
// Detectar aceptación: "acepto", "si acepto", "sí, acepto", "1", etc.
|
||||
$accepted = (bool) preg_match('/\b(acepto|si acepto|si|sí|1|ok|aceptar|de acuerdo|confirmo)\b/', $normalized);
|
||||
// Detectar rechazo PRIMERO para evitar que "no acepto" haga match en el regex de aceptación
|
||||
$rejected = (bool) preg_match('/\b(no acepto|no|rechazo|rechazar|negar|0|rechaz[oa])\b/', $normalized);
|
||||
|
||||
// Detectar rechazo explícito: "no acepto", "rechazo", "no", "0", etc.
|
||||
$rejected = !$accepted && (bool) preg_match('/\b(no acepto|no|rechazo|rechazar|negar|0|rechaz[oa])\b/', $normalized);
|
||||
// Detectar aceptación solo si no hubo rechazo: "acepto", "si acepto", "sí", "1", etc.
|
||||
$accepted = !$rejected && (bool) preg_match('/\b(acepto|si acepto|si|sí|1|ok|aceptar|de acuerdo|confirmo)\b/', $normalized);
|
||||
|
||||
if (!$accepted && !$rejected) {
|
||||
// Respuesta no reconocida → volver a preguntar
|
||||
|
||||
Reference in New Issue
Block a user