Initial commit: monorepo Naturcalabacera reservas (apps/api + apps/web + packages/shared)
This commit is contained in:
29
supabase/migrations/004_add_contracts_table.sql
Normal file
29
supabase/migrations/004_add_contracts_table.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- Migración 004: Tabla de contratos adjuntos a reservas
|
||||
-- Diseño: tabla separada (no columnas en reservations) para soportar múltiples contratos por reserva
|
||||
|
||||
CREATE TABLE public.reservation_contracts (
|
||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
reservation_id UUID NOT NULL REFERENCES public.reservations(id) ON DELETE CASCADE,
|
||||
file_path TEXT NOT NULL, -- Path en Supabase Storage: contracts/{reservation_id}/{filename}
|
||||
filename TEXT NOT NULL, -- Nombre visible del archivo
|
||||
mime_type TEXT NOT NULL, -- application/pdf, image/jpeg, image/png
|
||||
size_bytes INTEGER NOT NULL,
|
||||
uploaded_by UUID REFERENCES auth.users(id),
|
||||
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
|
||||
);
|
||||
|
||||
-- Índice para consultas por reserva
|
||||
CREATE INDEX idx_reservation_contracts_reservation_id
|
||||
ON public.reservation_contracts(reservation_id);
|
||||
|
||||
ALTER TABLE public.reservation_contracts ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Por ahora: staff puede gestionar contratos (RLS se refina en migración 009)
|
||||
CREATE POLICY "Temp: authenticated can manage contracts"
|
||||
ON public.reservation_contracts
|
||||
FOR ALL TO authenticated
|
||||
USING (true)
|
||||
WITH CHECK (true);
|
||||
|
||||
COMMENT ON TABLE public.reservation_contracts IS
|
||||
'Contratos adjuntos a reservas. Archivos almacenados en Supabase Storage bucket "contracts".';
|
||||
Reference in New Issue
Block a user