Initial commit: monorepo Naturcalabacera reservas (apps/api + apps/web + packages/shared)

This commit is contained in:
2026-04-30 10:09:44 +01:00
commit a0ccb8ca64
188 changed files with 16418 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
-- 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.';