Database
Manage DB
Browse collections and tables, and watch the CQRS timing pipeline.
Event Group Staffevent_group_staff
Volunteers, checkpoint captains, officials, and medical staff for an event group.
π‘
Operational Purpose & Edge Invariants
Rosters people (not logins) so directors can staff an event before volunteers sign up. Once a volunteer's verified login claims their person record, the roles here grant access to that event group.
Relational Connections (3)
Table Columns & Types (5)
event_group_staff| Column | PostgreSQL Type | Constraints | Default | Documentation |
|---|---|---|---|---|
| id | uuid | NOT NULLPK | gen_random_uuid() | Unique staff assignment identifier. |
| eventGroupId | uuid | NOT NULLFK -> event_groups.id | β | Event group. |
| personId | uuid | NOT NULLFK -> people.id | β | Staff member. |
| roles | staff_role[] | NOT NULL | β | One or more of volunteer, checkpoint_captain, official, medical. |
| createdAt | timestamp with time zone | NOT NULL | now() | When the person was rostered. |
PostgreSQL Enums (1)
enum "staff_role"
| Value | Label | Domain Meaning |
|---|---|---|
| 'volunteer' | Volunteer | Records times at assigned timing points. |
| 'checkpoint_captain' | Checkpoint Captain | Leads assigned timing points and may correct entries made there. |
| 'official' | Official | Event-group-wide timing authority: corrections, time allowances, DQs. |
| 'medical' | Medical / SAR | Sees emergency contacts and safety information. |
Database Indexes (2)
| Index Name | Columns | Type | Query Performance Rationale |
|---|---|---|---|
| event_group_staff_group_person_idx | (eventGroupId, personId) | UNIQUE | One roster row per person per event group. |
| event_group_staff_person_idx | (personId) | INDEX | Lists a person's staffing assignments. |