-- Allow members to cancel their own reservations and edit reason/comment. -- 1. Expand status check constraint to include 'cancelled' alter table public.reservations drop constraint reservations_status_check; alter table public.reservations add constraint reservations_status_check check (status in ('pending', 'tentative', 'confirmed', 'cancelled')); -- 2. Exclude cancelled reservations from the public slots view so cancelled -- slots appear as available again on the schedule. 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 where status <> 'cancelled'; grant select on public.reservation_slots to authenticated;