Перейти к содержанию

UML — Domain Class

classDiagram
    class User {
        +UUID id
        +string email
        +string telegram_id
        +datetime created_at
    }
    class Session {
        +UUID id
        +string invite_code
        +SessionStatus status
        +UUID host_participant_id
    }
    class Participant {
        +UUID id
        +UUID session_id
        +UUID user_id
        +string guest_id
        +Role role
        +bool presence_web
        +bool presence_telegram
    }
    class GameInstance {
        +UUID id
        +UUID session_id
        +string plugin_id
        +GameStatus status
        +JSON state
        +UUID current_player_id
    }
    class GameAction {
        +UUID id
        +UUID game_instance_id
        +UUID action_id
        +string action_type
        +JSON payload
        +UUID player_id
    }
    User "1" --> "*" Participant : may have
    Session "1" --> "*" Participant : contains
    Session "1" --> "*" GameInstance : hosts
    GameInstance "1" --> "*" GameAction : audit
    Participant "1" --> "*" GameAction : performs

Исходник: domain-class.mmd