From bcc606db28b7ab0bb11aa577f5d1d81eb8e6799e Mon Sep 17 00:00:00 2001 From: belviskhoremk Date: Wed, 12 Aug 2026 10:51:17 +0200 Subject: [PATCH] feat: allow bookings.status to be marked completed --- ...20260812105003_add_completed_booking_status.sql | 5 +++++ supabase/tests/database/rls.test.sql | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 supabase/migrations/20260812105003_add_completed_booking_status.sql diff --git a/supabase/migrations/20260812105003_add_completed_booking_status.sql b/supabase/migrations/20260812105003_add_completed_booking_status.sql new file mode 100644 index 0000000..0327d91 --- /dev/null +++ b/supabase/migrations/20260812105003_add_completed_booking_status.sql @@ -0,0 +1,5 @@ +-- Widen the bookings.status check constraint to allow 'completed', so the +-- admin panel can mark past appointments completed (not just cancelled). +alter table public.bookings drop constraint bookings_status_check; +alter table public.bookings add constraint bookings_status_check + check (status in ('confirmed', 'cancelled', 'completed')); diff --git a/supabase/tests/database/rls.test.sql b/supabase/tests/database/rls.test.sql index 9866149..d2c7eef 100644 --- a/supabase/tests/database/rls.test.sql +++ b/supabase/tests/database/rls.test.sql @@ -1,5 +1,5 @@ begin; -select plan(15); +select plan(17); -- Seed reference data as service_role (bypasses RLS) set local role service_role; @@ -123,5 +123,17 @@ select lives_ok( 'admin can upload to salon-images' ); +select lives_ok( + $$ update public.bookings set status = 'completed' where service_id = 'knotless' $$, + 'admin can mark a booking completed' +); + +select throws_ok( + $$ update public.bookings set status = 'bogus' where service_id = 'knotless' $$, + '23514', + null, + 'booking status is still constrained to known values' +); + select * from finish(); rollback;