Event Management — House of Legends
Documented: 2026-05-11 Doc Status: Excellent | ✓ All 6 checks passedOverview
Admin creates and manages scheduled events (experience occurrences) via the dashboard. Events link experiences to specific dates, times, and venues.Event vs Experience
| Concept | Table | Description |
|---|---|---|
| Experience | experiences | Show template (static) — title, description, images |
| Event | experienceEvents | Scheduled instance (dynamic) — date, time, venue, capacity, price |
Experiences Table
/dashboard/experiences.
Events Table
Admin CRUD
Event List (/dashboard/events)
Table columns:
- Experience name
- Date
- Time
- Venue
- Capacity
- Booked / Available
- Status (Enabled/Disabled)
- By experience
- By date range
- By status
Create Event
Form fields:- Experience (dropdown)
- Date (date picker)
- Time (time picker)
- Venue (text)
- Capacity (number)
- Dinner Price (VND)
- Show Only Price (VND)
- Enabled (toggle)
Batch Create
Admin can generate multiple events at once:- Select experience
- Select days of week (Mon, Wed, Fri)
- Select time (11:00, 19:00)
- Select date range
- Capacity (inherit or override)
- Generate all occurrences
Edit Event
Same fields as create. Can update:- Time, venue, capacity
- Prices (for future events)
- Enabled/disabled status
Cancel Event
- Sets
enabled: false - Triggers notification to all booked guests
- Releases seats (increases available capacity conceptually)
Availability Calculation
bookedCount is incremented on reservations.createPending and decremented on reservations.cancel.
Components
| Component | Purpose |
|---|---|
event-list.tsx | Table of events with filters |
event-form.tsx | Create/edit event form |
batch-event-generator.tsx | Generate multiple events |
event-calendar.tsx | Calendar view of events |
Backend Functions
| Function | Purpose |
|---|---|
experiences.listActive | Get all enabled experiences |
experiences.getBySlug | Get experience by slug |
events.listUpcoming | Get events for date range |
events.getAvailability | Get available seats for event |
events.create | Create single event |
events.batchCreate | Create multiple events |
events.update | Update event fields |
events.archive | Disable event |