/**
 * Sanitiza la pregunta del usuario antes de enviarla al LLM o al embedding,
 * para evitar que se filtren datos del tenant (CI, RUC, montos, etc.).
 *
 * Reglas conservadoras: reemplaza patrones que claramente parecen datos
 * personales/financieros. Si hay falsos positivos el chatbot pierde
 * precisión, pero NUNCA filtra datos reales.
 */
export function sanitizarPregunta(pregunta: string): string {
  let s = pregunta;

  // RUC paraguayo (6-8 dígitos + opcional dv): 1234567-8
  s = s.replace(/\b\d{6,8}-\d\b/g, '[ruc]');

  // CI con separadores (1.234.567 o 1234567 cuando es claramente un número de 7-8 dígitos)
  s = s.replace(/\b\d{1,3}\.\d{3}\.\d{3,4}\b/g, '[ci]');
  s = s.replace(/\bCI\s*[:#]?\s*\d{6,8}\b/gi, 'CI [ci]');

  // Montos en Gs. con separadores
  s = s.replace(/\bGs\.\s*\d{1,3}(?:\.\d{3})+\b/gi, 'Gs. [monto]');
  s = s.replace(/\b\d{1,3}(?:\.\d{3}){2,}\b/g, '[monto]'); // 1.234.567+

  // Email
  s = s.replace(/\b[\w.+-]+@[\w-]+\.[\w.-]+\b/g, '[email]');

  // IBAN básico
  s = s.replace(/\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g, '[iban]');

  return s;
}
