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