Event

canonical term: showEvent | plural: showEvents This document explains what an Event is, how it relates to a Show, and what operational data it carries.

What Is an Event?

An Event (showEvent) is a scheduled, bookable instance of a show on a specific date. It is the thing guests actually reserve seats for. While a Show (showTemplate) is the blueprint — “Jazz Night is a Wednesday show with doors at 7pm” — an Event is the real thing — “Jazz Night on Wednesday 3 June 2026 at 7:30pm, with 14 seats remaining.” The event is what appears in the booking calendar. It is what has availability. It is what owns the list of reservations for that performance.

Why Not “Episode”?

Use Event (showEvent) as the canonical operational and code term. It describes a scheduled, bookable live performance with a date, capacity, reservations, payments, check-in, and prep work. The word episode can work as brand or editorial copy if House of Legends deliberately wants a serialized-story metaphor, but it should not replace showEvent in code, API contracts, admin workflows, or operational docs.

Event vs. Show

This is the most common confusion in the codebase. Here is the distinction:
Show (showTemplate)Event (showEvent)
Is it bookable?No — it is a definitionYes — guests reserve seats
Has a date?No — it is the templateYes — specific calendar date
Has availability?NoYes — remaining seats
How many exist?One per show type (7 shows)Many — one per scheduled date
ExampleJazz NightJazz Night — Wed 3 Jun 2026
Think of it this way:
  • Show = “what” — what kind of experience is this?
  • Event = “when” — when does this specific performance happen?

What Defines an Event?

When an event is created from a show, it inherits all the show’s programme data and adds date-specific information:
  • Date — the calendar date (e.g. 3 June 2026)
  • Event slot — the show time within that date (e.g. “7:30 PM”)
  • Availability — remaining seats (starts at capacity, decrements per reservation)
  • Status — SCHEDULED, SOLD_OUT, CANCELLED, POSTPONED
The event also tracks operational data for that specific performance:
  • Prep counts — what the kitchen needs to prepare
  • Logistics notes — any show-specific setup notes
  • Reservation list — everyone booked for this performance

The Event Reference Format

Events have a human-readable reference that encodes the show and date:
EVT_{SHOWCODE}{YYMMDD}_NNNN
Breaking this down:
PartMeaningExample
EVTPrefix — this is an eventEVT
{SHOWCODE}Show identifierJAZZ
{YYMMDD}Event date, compact260603
{NNNN}Sequence — if multiple shows on same date0001
Example: EVT_JAZZ260603_0001 — Jazz Night on 26 June 03, first event of the day.

The Three Identifiers of an Event

IdentifierExamplePurpose
id (ULID)01ARZ3NDEKTSV4RRFFQ69G5FAVMachine identity — joins, API, DB
referenceEVT_JAZZ260603_0001Human identifier — ops, receipts
slugjazz-night-2026-06-03Friendly identifier — derived from show slug + date

How Events Own Reservations

An event is the parent of all reservations for that performance. When a guest books:
showEvent: Jazz Night — Wed 3 Jun 2026
  └── reservation: Table for 2, Mr. Nguyen
  └── reservation: Solo, Ms. Tran
  └── reservation: Table for 4, Mr. Le
This is why availability is calculated at the event level — the event knows how many seats are left based on all its reservations.

Event Status Lifecycle

StatusMeaning
SCHEDULEDNormal — bookings open
SOLD_OUTAll 32 seats reserved — waitlist may open
CANCELLEDShow cancelled — all reservations refunded
POSTPONEDShow moved — reservations transferred to new date

Key Fields

FieldTypeNotes
idULIDMachine identity
referencestringe.g. EVT_JAZZ260603_0001
slugstringe.g. jazz-night-2026-06-03
showTemplateIdULIDFK to parent show
showDatedateCalendar date
eventSlotstringShow time, e.g. “7:30 PM”
doorTimestringDoor time, e.g. “7:00 PM”
showTimestringShow start time, e.g. “7:30 PM”
totalCapacitynumberInherited from show — 32
remainingSeatsnumberLive availability
statusenumSCHEDULED, SOLD_OUT, CANCELLED, POSTPONED

See Also