TeamVis Self-Host-Bundle v0.46.1
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
-- 0057_booking_slot_unique.sql
|
||||
--
|
||||
-- Schutz gegen Doppelbuchung desselben Slots (Race zwischen zwei
|
||||
-- gleichzeitigen Gaesten). createBooking prueft die Verfuegbarkeit per
|
||||
-- Check-then-Insert — zwei parallele Requests sehen beide den Slot als frei
|
||||
-- und inserten beide. Ein partieller Unique-Index auf (employee_id,
|
||||
-- start_at) fuer bestaetigte Buchungen laesst die DB das Rennen atomar
|
||||
-- entscheiden; die App faengt den Unique-Violation-Fehler (23505) ab und
|
||||
-- meldet dem zweiten Gast "Termin nicht mehr verfuegbar".
|
||||
--
|
||||
-- Nur 'confirmed' zaehlt — stornierte/abgesagte Buchungen (status !=
|
||||
-- 'confirmed') duerfen denselben Slot wieder freigeben.
|
||||
|
||||
create unique index if not exists bookings_slot_confirmed_uniq
|
||||
on public.bookings (employee_id, start_at)
|
||||
where status = 'confirmed';
|
||||
Reference in New Issue
Block a user