import type { TipoReforma } from '@/budget/types';

export interface ScriptTurn {
  quien: 'agente' | 'cliente';
  texto: string;
}
export interface ScriptBlock {
  id: 'preambulo' | 'confirmacion' | 'slots' | 'gustos' | 'cierre';
  titulo: string;
  turnos: ScriptTurn[];
}
export interface VoiceScript {
  bloques: ScriptBlock[];
}

const TIPO_TEXTO: Record<TipoReforma, string> = {
  cocina: 'la cocina',
  bano: 'el baño',
  salon: 'el salón',
  comedor: 'el comedor',
  integral: 'el piso entero',
  otro: 'la reforma',
};

export function buildScript(
  empresa: { nombreEmpresa: string },
  lead: { nombre: string; tipoReforma: TipoReforma | null; m2Suelo: number | null },
): VoiceScript {
  const nombre = lead.nombre.split(' ')[0];
  const tipo = TIPO_TEXTO[lead.tipoReforma ?? 'otro'];
  const m2 = lead.m2Suelo ? `${Math.round(lead.m2Suelo)} metros` : 'el espacio';

  return {
    bloques: [
      {
        id: 'preambulo',
        titulo: 'Preámbulo legal',
        turnos: [
          {
            quien: 'agente',
            texto: `Hola ${nombre}, te llamo de ${empresa.nombreEmpresa}. Soy un asistente virtual con inteligencia artificial y esta llamada queda grabada y transcrita para preparar tu presupuesto. ¿Te parece bien que sigamos?`,
          },
        ],
      },
      {
        id: 'confirmacion',
        titulo: 'Confirmación de datos',
        turnos: [
          { quien: 'agente', texto: `Me dices que quieres reformar ${tipo}, ¿unos ${m2} aproximadamente, verdad?` },
        ],
      },
      {
        id: 'slots',
        titulo: 'Datos clave',
        turnos: [
          { quien: 'agente', texto: '¿Qué nivel de acabado buscas: básico, medio o premium?' },
          { quien: 'agente', texto: '¿Hay que mover sanitarios principales, tirar algún muro o cambiar la distribución?' },
          { quien: 'agente', texto: '¿Para cuándo te gustaría tenerlo?' },
          { quien: 'agente', texto: '¿Tienes una cifra en mente, aunque sea aproximada?' },
        ],
      },
      {
        id: 'gustos',
        titulo: 'Gustos y preferencias',
        turnos: [
          { quien: 'agente', texto: `Cuéntame cómo te imaginas ${tipo}: estilo, colores, materiales que te gusten… y si hay algún capricho que no quieras que falte.` },
          { quien: 'agente', texto: '¿Te tira más la madera, el porcelánico, algo más industrial?' },
          { quien: 'agente', texto: '¿Hay algo imprescindible: una isla, una ducha de obra, electrodomésticos integrados?' },
        ],
      },
      {
        id: 'cierre',
        titulo: 'Cierre',
        turnos: [
          { quien: 'agente', texto: `Genial, con esto te preparo el render y el presupuesto orientativo y te lo enviamos por WhatsApp. ¡Muchas gracias, ${nombre}!` },
        ],
      },
    ],
  };
}
