byceps/byceps

View on GitHub
byceps/events/tourney.py

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
"""
byceps.events.tourney
~~~~~~~~~~~~~~~~~~~~~

:Copyright: 2014-2024 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

from dataclasses import dataclass

from .base import _BaseEvent


@dataclass(frozen=True)
class EventTourney:
    id: str
    title: str


@dataclass(frozen=True)
class EventTourneyParticipant:
    id: str
    name: str


@dataclass(frozen=True)
class _BaseTourneyEvent(_BaseEvent):
    tourney: EventTourney


# tourney


@dataclass(frozen=True)
class _TourneyEvent(_BaseTourneyEvent):
    pass


@dataclass(frozen=True)
class TourneyCreatedEvent(_TourneyEvent):
    pass


@dataclass(frozen=True)
class TourneyStartedEvent(_TourneyEvent):
    pass


@dataclass(frozen=True)
class TourneyPausedEvent(_TourneyEvent):
    pass


@dataclass(frozen=True)
class TourneyCanceledEvent(_TourneyEvent):
    pass


@dataclass(frozen=True)
class TourneyFinishedEvent(_TourneyEvent):
    pass


# match


@dataclass(frozen=True)
class _TourneyMatchEvent(_BaseTourneyEvent):
    match_id: str
    participant1: EventTourneyParticipant | None
    participant2: EventTourneyParticipant | None


@dataclass(frozen=True)
class TourneyMatchReadyEvent(_TourneyMatchEvent):
    pass


@dataclass(frozen=True)
class TourneyMatchResetEvent(_TourneyMatchEvent):
    pass


@dataclass(frozen=True)
class TourneyMatchScoreSubmittedEvent(_TourneyMatchEvent):
    pass


@dataclass(frozen=True)
class TourneyMatchScoreConfirmedEvent(_TourneyMatchEvent):
    pass


@dataclass(frozen=True)
class TourneyMatchScoreRandomizedEvent(_TourneyMatchEvent):
    pass


# participant


@dataclass(frozen=True)
class _TourneyParticipantEvent(_BaseTourneyEvent):
    match_id: str
    participant: EventTourneyParticipant


@dataclass(frozen=True)
class TourneyParticipantReadyEvent(_TourneyParticipantEvent):
    pass


@dataclass(frozen=True)
class TourneyParticipantEliminatedEvent(_TourneyParticipantEvent):
    pass


@dataclass(frozen=True)
class TourneyParticipantWarnedEvent(_TourneyParticipantEvent):
    pass


@dataclass(frozen=True)
class TourneyParticipantDisqualifiedEvent(_TourneyParticipantEvent):
    pass