-- The reservation_slots view was created with security_invoker=true, which means
-- it evaluates RLS as the calling user. After removing the broad select policy,
-- other members see 0 rows. Switch to security_definer so the view runs as the
-- owner (bypassing RLS), while still exposing only the safe columns.

drop view if exists public.reservation_slots;

create view public.reservation_slots
  with (security_invoker = false)
as
  select id, boat_id, start_time, end_time, status
  from public.reservations;

grant select on public.reservation_slots to authenticated;
