Configuracion para guardar en base de datos

This commit is contained in:
unknown
2026-06-02 23:11:46 -04:00
parent fc6a7044b0
commit e5c8956b64
3 changed files with 86 additions and 23 deletions

View File

@@ -332,14 +332,14 @@ Reglas para valor_extraido:
}
const valoresPermitidos = this.leadsService.getValoresPermitidos(estado);
const valor = clasificacion.valor_extraido?.trim().toLowerCase();
const valor = this.normalizarTexto(clasificacion.valor_extraido ?? '');
if (!valor) {
return { valido: false, valorNormalizado: null };
}
const coincide = valoresPermitidos.some(
(v) => v === valor || valor.includes(v),
(v) => v === valor || valor.includes(v) || v.includes(valor),
);
if (!coincide) {
@@ -347,11 +347,21 @@ Reglas para valor_extraido:
}
const valorNormalizado =
valoresPermitidos.find((v) => v === valor || valor.includes(v)) ?? valor;
valoresPermitidos.find(
(v) => v === valor || valor.includes(v) || v.includes(valor),
) ?? valor;
return { valido: true, valorNormalizado };
}
private normalizarTexto(valor: string): string {
return valor
.trim()
.toLowerCase()
.normalize('NFD')
.replace(/\p{Diacritic}/gu, '');
}
private claveReintento(leadId: number, estado: string): string {
return `${leadId}:${estado}`;
}
@@ -603,6 +613,11 @@ Devuelve SOLO el mensaje final listo para enviar, sin explicaciones ni JSON.
const campo = this.leadsService.getCampoParaEstado(estadoFlujo);
if (campo) {
entidad = { [campo]: validacion.valorNormalizado };
} else if (
estadoFlujo === 'apertura' &&
clasificacion.valor_extraido?.trim()
) {
entidad = { nombre: clasificacion.valor_extraido.trim() };
}
}