Profiles & cities
community_groups
Community groups (WhatsApp / Telegram / …) per city — the cold-start directory for cities where WeDance has no events yet.
Columns
| Column | Type | Null | Default | Keys |
|---|---|---|---|---|
| id | uuid | no | gen_random_uuid() | PK |
| city_slug | text | no | — | |
| name | text | no | — | |
| platform | text whatsapptelegramfacebookother | no | "whatsapp" | |
| invite_url | text | no | — | |
| styles | json | yes | [] | |
| source | text | yes | — | |
| verified | boolean | yes | false | |
| status | text visiblehidden | no | "visible" | |
| report_count | integer | yes | 0 | |
| 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.
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
community_group_reports {
uuid id PK
uuid group_id FK
uuid dancer_id FK
}
community_groups {
uuid id PK
}
community_groups ||--o{ community_group_reports : "group_id" Defined at server/database/schema.ts:286 as communityGroups.