Festivals & ticketing
festival_signups
Columns
| Column | Type | Null | Default | Keys |
|---|---|---|---|---|
| id | uuid | no | gen_random_uuid() | PK |
| festival_id | uuid | no | — | |
| dancer_id | uuid | yes | — | |
| paid_amount | integer | no | 0 | |
| stripe_session_id | text | yes | — | |
| verified_ticket_holder | boolean | no | false | |
| tickettailor_order_id | text | yes | — | unique |
| tickettailor_buyer_email | text | yes | — | |
| verified_at | timestamp | yes | — | |
| roster_visibility | text public_fullpublic_minimalhidden | no | "public_minimal" | |
| 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
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
- auth.deleteAccount
- festivalSignup.status
- festivalSignup.join
- festivalSignup.createCheckoutSession
- festivalSignup.ticketCheckout
- festivalSignup.publicRoster
- festivalSignup.setMyVisibility
- festivalSignup.getMyVisibility
- festivalSignup.myTickets
- claim.claimMyTicketHolderRows
- claim.getClaimStatus
- festivalInsights.styleLevelMix
- events.festivals
- plan.goingList
- plan.myPlan
- plan.sharedPlan
- businessEvents.attendees
REST & webhooks
- GET /api/festivals
- POST /api/stripe/webhook
- POST /api/webhooks/tickettailor
- 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_signups {
uuid id PK
uuid festival_id FK
uuid dancer_id FK
text tickettailor_order_id UK
}
festivals {
uuid id PK
text slug UK
}
festivals ||--o{ festival_signups : "festival_id"
dancers |o--o{ festival_signups : "dancer_id" Defined at server/database/schema.ts:97 as festivalSignups.