-- 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".';