Asking what is still open
The one mechanism the whole system rests on — availability is a question answered from the bookings, never a flag read off a calendar.
- 1The visitor picks a hall and a date; the page calls the availability endpoint with just those two values
- 2The server loads the bookings that already sit on that hall and date and are not cancelled
- 3It collects the slots those bookings hold, treating a full-day booking as holding all of them
- 4It returns the eight slots split into available and taken, and the page renders them as selectable or not
- 5Because the answer is derived, a cancelled booking releases its slots the instant it is cancelled — nothing has to be written back
- 6And because a slot is an identity rather than a time range, two bookings can be compared without any overlap arithmetic



