From c38289fcae1f826cd4ed795adfdf6c620372ea5f Mon Sep 17 00:00:00 2001 From: Carlos Narro Date: Sun, 31 May 2026 16:11:29 +0200 Subject: [PATCH] Add tipos del contrato de preferencias del agente de voz --- mvp/b2c/src/lib/voice/preferences.ts | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mvp/b2c/src/lib/voice/preferences.ts diff --git a/mvp/b2c/src/lib/voice/preferences.ts b/mvp/b2c/src/lib/voice/preferences.ts new file mode 100644 index 0000000..3d41d81 --- /dev/null +++ b/mvp/b2c/src/lib/voice/preferences.ts @@ -0,0 +1,40 @@ +import type { Calidad, CategoriaMaterial, TipoReforma } from '@/budget/types'; + +export type Urgencia = 'alta' | 'media' | 'baja'; + +export interface RawCallData { + tipoReforma: TipoReforma; + m2Suelo: number | null; + calidad: Calidad | null; + estructural: boolean | null; + urgencia: Urgencia | null; + presupuestoTarget: number | null; // céntimos + tasteText: string; +} + +export interface PreferenceExtra { + key: string; + label: string; + importe: number; // céntimos (base, antes de factor zona) +} + +export interface PreferenceAjuste { + label: string; + tipo: 'factor' | 'fijo'; + valor: number; // factor (p.ej. 1.1) o céntimos + motivo: string; +} + +export interface AbstractedPreferences { + calidadGlobal: Calidad; + materialSelections: Partial>; + estructural: boolean; + urgencia: Urgencia | null; + presupuestoTarget: number | null; + elementos: PreferenceExtra[]; + estiloRender: string[]; + ajustes: PreferenceAjuste[]; + confianza: 'baja' | 'media' | 'alta'; + resumen: string; + camposFaltantes: string[]; +}