ERD — PostgreSQL
erDiagram
users ||--o{ participants : has
sessions ||--|{ participants : contains
sessions ||--|{ game_instances : hosts
game_instances ||--|{ game_actions : logs
participants ||--o{ game_actions : performs
users {
uuid id PK
string email UK
string password_hash
bigint telegram_id UK
timestamp created_at
}
sessions {
uuid id PK
string invite_code UK
string status
uuid host_participant_id FK
timestamp created_at
}
participants {
uuid id PK
uuid session_id FK
uuid user_id FK
string guest_id
string role
string display_name
boolean presence_web
boolean presence_telegram
}
game_instances {
uuid id PK
uuid session_id FK
string plugin_id
string status
jsonb state
uuid current_player_id FK
uuid winner_id FK
timestamp started_at
timestamp finished_at
}
game_actions {
uuid id PK
uuid game_instance_id FK
uuid action_id UK
string action_type
jsonb payload
uuid player_id FK
timestamp created_at
}
Исходник: erd.mmd