Gigs & hangouts
hangouts
Tonight (Hangouts) — spontaneous evening activities where dancers can mark they're out (dinner, bar, ride, floor, etc.) and see who else is joining.
Columns
| Column | Type | Null | Default | Keys |
|---|---|---|---|---|
| id | uuid | no | gen_random_uuid() | PK |
| kind | text dinnerbarridefloorcoffee | no | — | |
| title | text | no | — | |
| time | text | no | — | |
| venue | text | yes | — | |
| place_id | text | yes | — | |
| place_address | text | yes | — | |
| place_lat | double precision | yes | — | |
| place_lng | double precision | yes | — | |
| host | text | yes | — | |
| city_slug | text | no | — | |
| event_id | uuid | yes | — | |
| people_count | integer | yes | 0 | |
| status | text activeclosed | no | "active" | |
| dancer_id | uuid | no | — | |
| created_at | timestamp | yes | now() | |
| updated_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.
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
}
events {
uuid id PK
uuid host_profile_id FK
uuid edited_by FK
}
hangout_rsvps {
uuid id PK
uuid hangout_id FK
uuid dancer_id FK
}
hangouts {
uuid id PK
uuid event_id FK
uuid dancer_id FK
}
dancers |o--o{ events : "edited_by"
hangouts ||--o{ hangout_rsvps : "hangout_id"
dancers ||--o{ hangout_rsvps : "dancer_id"
events |o--o{ hangouts : "event_id"
dancers ||--o{ hangouts : "dancer_id" Defined at server/database/schema.ts:707 as hangouts.