← All clips · Venues & Capacity
Set up a venue, its capacity and its zones
PASSING GATE Administrator 21 steps · 31.8s · recorded Aug 30, 10:04 AM · b690bff
This run has no video.
Speed
A venue is a real room: a permanent slug, a fire-code capacity, its own timezone, and the door zones readers are pinned to. An administrator creates one, adds a zone whose code is DERIVED from the slug (never typed, because that code is written into every ticket issued for the room), and then binds a new event to it so the room's capacity and clock become the event's.
← Who hears that something happened
Source: e2e/scenarios/test_wf_set_up_a_venue.py:1
·
run 20260830T170425Z-b690bff · steps carry
start_ms/end_ms offsets into the video
Steps
-
The three house rooms were ADOPTED by the migration, not invented by it — Main Warehouse, Blue Room and Mezzanine already existed as strings in `events.venue`.
-
The slug is PERMANENT. Zone codes are derived from it and every signed ticket carries those codes, so a slug that moved would leave a venue's name and its doors permanently out of step.
-
The head-count ceiling: it clamps what a host may ask for on /host/apply and it gates the sum of tier inventory when an event here goes on sale.
-
The timezone is authoritative for every time captured or displayed for an event in this room — the guided run-of-show builder asks the venue, not the browser.
-
Granting a zone to a group re-issues those members' MEMBERSHIP cards (the superseded ones are revoked). Event-ticket passes are never re-minted by anything in this module — the UI says so above the boxes.
-
Never client-supplied. `derive_zone_code(venue_slug, suffix)` is the ONLY way a venue zone code is minted, and that is what keeps codes globally unique — the door scanner compares this exact string with no venue in scope, so two rooms both owning `A` would open each other.
-
A second zone, same rule: derived, globally unique, and immutable from the moment it exists.
-
Never client-supplied. `derive_zone_code(venue_slug, suffix)` is the ONLY way a venue zone code is minted, and that is what keeps codes globally unique — the door scanner compares this exact string with no venue in scope, so two rooms both owning `A` would open each other.
-
`Readers` is module 03's physical inventory: a zone starts with none, and readers are pinned to it separately.
-
The hint under the picker is the room speaking: its name, its capacity and the timezone that resolved for it.
-
`events.venue_id` is the binding; `events.venue` survives only as a display mirror the service keeps in step — and freezes on a completed event, because that string is the historical record of where the show happened.
-
Capacity is a rollup now: the room's ceiling, the sum of its zone capacities, and every event booked into it with its tier inventory.
Notes
Sign in to leave a timestamped review note. Notes land in the same review backlog as in-page annotations.
- No notes on this clip yet.
Run history (6)
- 20260830T214426Z-3499cea — passed · 3499cea
- 20260830T183234Z-77584d6 — passed · 77584d6
- 20260830T180457Z-bd2e5e8 — passed · bd2e5e8
- 20260830T175417Z-7720b19 — passed · 7720b19
- 20260830T170425Z-b690bff — passed · b690bff
- 20260826T041017Z-eadc380 — passed · eadc380