-- ============================================================= -- Bereiche (Brotzeit/Mittagessen/…) vollständig verwaltbar machen: -- anlegen, umbenennen, Uhrzeit ändern, löschen. -- ============================================================= -- Neue Bereiche bekommen einen automatisch generierten Schlüssel -- (wie bei dishes.id) statt eines von Hand vergebenen Slugs. alter table public.sections alter column key set default (gen_random_uuid())::text; -- Löscht man einen Bereich, werden seine Wochenplan-Einträge mit -- entfernt (analog zu menu_entries_dish_id_fkey bei Gerichten) statt -- die Löschung zu blockieren. alter table public.menu_entries drop constraint menu_entries_section_key_fkey; alter table public.menu_entries add constraint menu_entries_section_key_fkey foreign key (section_key) references public.sections(key) on delete cascade; -- Bisher gab es nur eine Lesepolicy für sections; jetzt dürfen -- Kantinenmitarbeiter/Admins Bereiche auch anlegen/ändern/löschen. create policy "sections_staff_write" on public.sections for all to authenticated using (public.app_role() in ('staff', 'admin')) with check (public.app_role() in ('staff', 'admin'));