SET lock_timeout = '10s';
SET statement_timeout = '120000';

ALTER TABLE workforce.usuarios
ADD COLUMN IF NOT EXISTS preferencia_cotizaciones_ia JSONB;

ALTER TABLE workforce.usuarios
ADD CONSTRAINT workforce_usuarios_preferencia_cotizaciones_ia_object
CHECK (
    preferencia_cotizaciones_ia IS NULL
    OR jsonb_typeof(preferencia_cotizaciones_ia) = 'object'
);

COMMENT ON COLUMN workforce.usuarios.preferencia_cotizaciones_ia IS
'Preferencia Cotizaciones IA. Configuracion JSONB estable por operador y sucursal para generar cotizaciones desde agregar-venta. Guarda display_company_name, include_iva, extra_context y structured_points con titulos base, sin congelar el snapshot final de cada cotizacion.';

ALTER TABLE commerce.cotizaciones
ADD COLUMN IF NOT EXISTS structured_instruction_snapshot JSONB NOT NULL DEFAULT '{}'::jsonb;

ALTER TABLE commerce.cotizaciones
ADD CONSTRAINT chk_cotizaciones_structured_instruction_snapshot_object
CHECK (jsonb_typeof(structured_instruction_snapshot) = 'object');

COMMENT ON COLUMN commerce.cotizaciones.structured_instruction_snapshot IS
'Snapshot congelado de informacion estructurada usada para esa cotizacion. Incluye display_company_name, include_iva, extra_context y solo structured_points con body no vacio para Brain.';
