← All clips · Venues & Capacity

Set up a venue, its capacity and its zones

PASSING GATE Administrator 21 steps · 34.3s · recorded Aug 30, 11:05 AM · bd2e5e8

Viewing an archived run (20260830T180457Z-bd2e5e8). Back to the current run.

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.

Source: e2e/scenarios/test_wf_set_up_a_venue.py:1 · run 20260830T180457Z-bd2e5e8 · steps carry start_ms/end_ms offsets into the video

Steps

  1. 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`.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. A second zone, same rule: derived, globally unique, and immutable from the moment it exists.

  8. 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.

  9. `Readers` is module 03's physical inventory: a zone starts with none, and readers are pinned to it separately.

  10. The hint under the picker is the room speaking: its name, its capacity and the timezone that resolved for it.

  11. `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.

  12. 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.

  1. No notes on this clip yet.
Run history (6)