Files
Gesti-n-Reservas-Naturcalab…/supabase/migrations/003_add_pricing_snapshot.sql

24 lines
1.1 KiB
SQL

-- Migración 003: Añadir campos de precio para reservas Natur
-- Se usa un snapshot JSON para congelar el cálculo acordado en el momento de guardar.
-- El cálculo dinámico vive en packages/shared/src/utils/pricing.ts
-- Estas columnas son nullable — solo se populan para origin = 'Naturcalabacera'
ALTER TABLE public.reservations
ADD COLUMN igic_rate NUMERIC(5,4) DEFAULT 0.07,
ADD COLUMN pricing_snapshot JSONB;
-- Estructura del JSONB pricing_snapshot:
-- {
-- "basePrice": 1800, -- Canon base * noches
-- "extraPersonsFee": 120, -- Personas extra * tarifa * noches
-- "subtotal": 1920, -- basePrice + extraPersonsFee
-- "igicAmount": 134.4, -- subtotal * igicRate
-- "total": 2054.4, -- subtotal + igicAmount
-- "calculatedAt": "2026-04-10T12:00:00Z"
-- }
COMMENT ON COLUMN public.reservations.pricing_snapshot IS
'Snapshot congelado del cálculo de precio al guardar. Solo para origin=Naturcalabacera.';
COMMENT ON COLUMN public.reservations.igic_rate IS
'Tasa IGIC aplicada. Default 0.07 (7%). Configurable por reserva.';