Festivals & ticketing
festival_submissions
Festival submissions from the /organizers/create wizard. There is no live self-serve publish yet — the wizard captures the full draft here for the team to review and onboard, instead of pretending to go live. The whole draft is stored as a JSON payload so the schema doesn't have to track every wizard field.
Columns
| Column | Type | Null | Default | Keys |
|---|---|---|---|---|
| id | uuid | no | gen_random_uuid() | PK |
| slug | text | yes | — | |
| name | text | yes | — | |
| submitted_by_id | uuid | yes | — | |
| submitted_by_email | text | yes | — | |
| payload | json | no | — | |
| status | text pendingreviewingonboardeddeclined | no | "pending" | |
| created_at | timestamp | yes | now() |
Value lists come from .$type<'a' | 'b'>() in the schema — enforced in TypeScript only, not by the database.
Keys, constraints & indexes
Unique
None besides the primary key.
Indexes
No secondary indexes.
Foreign keys
- submitted_by_id → dancers.id on delete no action
Used by
Code that reads or writes this table, found by static analysis of the tRPC routers and API handlers (including helpers they call).
tRPC procedures
REST & webhooks
- ANY /mcp
- ANY /mcp/public
Relations
Rendering diagram…
Diagram source
erDiagram
dancers {
uuid id PK
text email UK
text neon_auth_id UK
text username UK
}
festival_submissions {
uuid id PK
uuid submitted_by_id FK
}
dancers |o--o{ festival_submissions : "submitted_by_id" Defined at server/database/schema.ts:552 as festivalSubmissions.