-- Migración 008: Vista segura para usuarios con rol external_availability_viewer -- -- Problema: RLS limita FILAS pero no COLUMNAS. -- Los usuarios Teneriffa solo deben ver ocupado/libre, sin datos personales. -- Solución: vista que expone únicamente los campos necesarios. -- El frontend de Teneriffa consulta esta vista, no la tabla directa. CREATE OR REPLACE VIEW public.reservations_availability AS SELECT id, start_date, end_date, property, 'Ocupado' AS status -- Nunca expone el origen real ni el cliente FROM public.reservations; -- Dar acceso de SELECT a usuarios authenticated a la vista -- La seguridad real se gestiona en el frontend con useUserRole() -- y en la migración 009 mediante RLS en la tabla base. GRANT SELECT ON public.reservations_availability TO authenticated; COMMENT ON VIEW public.reservations_availability IS 'Vista de disponibilidad segura. Solo expone fechas y propiedad. ' 'Usada por usuarios external_availability_viewer (Teneriffa). ' 'No expone cliente, precios, notas ni datos personales.';