Initial commit: monorepo Naturcalabacera reservas (apps/api + apps/web + packages/shared)
This commit is contained in:
23
supabase/migrations/003_add_pricing_snapshot.sql
Normal file
23
supabase/migrations/003_add_pricing_snapshot.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- 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.';
|
||||
Reference in New Issue
Block a user