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

export const CALIDAD_LEXICON: { calidad: Calidad; keywords: string[] }[] = [
  { calidad: 'premium', keywords: ['premium', 'lujo', 'alta gama', 'gama alta', 'lo mejor', 'calidad maxima', 'exclusivo'] },
  { calidad: 'basica', keywords: ['basico', 'economico', 'barato', 'sencillo', 'lo justo', 'ajustado'] },
  { calidad: 'media', keywords: ['normal', 'estandar', 'equilibrado', 'medio'] },
];

export const MATERIAL_LEXICON: { categoria: CategoriaMaterial; keywords: string[] }[] = [
  { categoria: 'suelo', keywords: ['suelo', 'tarima', 'parquet', 'porcelanico', 'ceramico', 'madera', 'vinilo'] },
  { categoria: 'pared', keywords: ['azulejo', 'alicatado', 'baldosa', 'microcemento', 'gres'] },
  { categoria: 'pintura', keywords: ['pintura', 'pintar', 'color de pared'] },
  { categoria: 'mobiliario', keywords: ['mueble', 'muebles', 'armario', 'encimera', 'mobiliario'] },
];

export const ESTRUCTURAL_LEXICON: string[] = [
  'tirar muro', 'tirar el muro', 'quitar pared', 'tirar pared', 'abrir la cocina',
  'mover el bano', 'mover sanitarios', 'cambiar la distribucion', 'derribar', 'tirar tabique',
];

export const ESTILO_LEXICON: string[] = [
  'nordico', 'industrial', 'minimalista', 'rustico', 'moderno', 'clasico', 'mediterraneo',
  'tonos calidos', 'tonos frios', 'blanco mate', 'madera clara', 'colores neutros',
];

export const ELEMENTOS_LEXICON: Record<
  TipoReforma,
  { key: string; label: string; importe: number; keywords: string[] }[]
> = {
  cocina: [
    { key: 'isla_cocina', label: 'Isla de cocina', importe: 120000, keywords: ['isla'] },
    { key: 'peninsula', label: 'Península', importe: 80000, keywords: ['peninsula'] },
    { key: 'electrodomesticos_integrados', label: 'Electrodomésticos integrados', importe: 150000, keywords: ['electrodomesticos integrados', 'integrados', 'encastrados'] },
  ],
  bano: [
    { key: 'ducha_obra', label: 'Ducha de obra', importe: 90000, keywords: ['ducha de obra', 'plato a ras', 'plato de obra'] },
    { key: 'doble_lavabo', label: 'Doble lavabo', importe: 45000, keywords: ['doble lavabo', 'dos senos', 'doble seno'] },
  ],
  salon: [],
  comedor: [],
  integral: [
    { key: 'isla_cocina', label: 'Isla de cocina', importe: 120000, keywords: ['isla'] },
  ],
  otro: [],
};

export const AJUSTE_LEXICON: {
  label: string;
  tipo: 'fijo' | 'factor';
  valor: number;
  motivo: string;
  keywords: string[];
}[] = [
  { label: 'Encimera de piedra natural', tipo: 'fijo', valor: 60000, motivo: 'mención de mármol/cuarzo/granito en la llamada', keywords: ['marmol', 'cuarzo', 'granito', 'silestone', 'piedra natural'] },
  { label: 'Domótica / iluminación inteligente', tipo: 'fijo', valor: 40000, motivo: 'mención de domótica en la llamada', keywords: ['domotica', 'inteligente', 'smart'] },
];

export function normalizeText(s: string): string {
  return s.toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g, '');
}
