Betrifft UI-Texte (DE/EN/PL), Route (/intern/bereiche -> /intern/essenszeiten), Code-Kommentare, Changelog und README. Fachlich unverändert (weiterhin die Tabelle/Komponente "sections"/ SectionManager im Code), da "Essenszeiten" den Zeitbezug des Features klarer ausdrückt als der bisherige Sammelbegriff.
26 lines
1.2 KiB
SQL
26 lines
1.2 KiB
SQL
-- =============================================================
|
|
-- Essenszeiten (Brotzeit/Mittagessen/…) vollständig verwaltbar machen:
|
|
-- anlegen, umbenennen, Uhrzeit ändern, löschen.
|
|
-- =============================================================
|
|
|
|
-- Neue Essenszeiten 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 eine Essenszeit, werden ihre 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 Essenszeiten 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'));
|