refactor: разделение domain.py на модуль domain, включающий common.py и session.py

This commit is contained in:
2026-08-17 02:03:46 +03:00
parent ab6fd43883
commit a7fcf3dda8
3 changed files with 55 additions and 33 deletions
+20
View File
@@ -0,0 +1,20 @@
from .common import Player, PlayerRole
from .session import (
ArrowDirection,
CardData,
CardState,
SessionStats,
StepData,
StepState,
)
__all__ = [
"Player",
"PlayerRole",
"ArrowDirection",
"CardData",
"CardState",
"SessionStats",
"StepData",
"StepState",
]
+13
View File
@@ -0,0 +1,13 @@
from dataclasses import dataclass
from enum import Enum, auto
class PlayerRole(Enum):
SETTER = auto()
GUESSER = auto()
@dataclass
class Player:
name: str
role: PlayerRole
@@ -3,6 +3,17 @@ from enum import Enum, auto
from typing import Optional
class ArrowDirection(Enum):
LEFT = auto()
RIGHT = auto()
class StepState(Enum):
WAITING_FOR_SETTER = auto()
WAITING_FOR_GUESSER = auto()
SESSION_FINISHED = auto()
class CardState(Enum):
SETTER_NOT_SET = auto()
SETTER_HIDDEN = auto()
@@ -13,9 +24,17 @@ class CardState(Enum):
GUESSER_WRONG = auto()
class ArrowDirection(Enum):
LEFT = auto()
RIGHT = auto()
@dataclass(frozen=True)
class CardData:
direction: Optional[ArrowDirection]
state: CardState
@dataclass(frozen=True)
class StepData:
index: int
setter: CardData
guesser: CardData
@dataclass
@@ -33,33 +52,3 @@ class SessionStats:
accuracy = 0.0
accuracy = (self.correct / self.total) * 100
return round(accuracy, 1)
class StepState(Enum):
WAITING_FOR_SETTER = auto()
WAITING_FOR_GUESSER = auto()
SESSION_FINISHED = auto()
class PlayerRole(Enum):
SETTER = auto()
GUESSER = auto()
@dataclass(frozen=True)
class CardData:
direction: Optional[ArrowDirection]
state: CardState
@dataclass(frozen=True)
class StepData:
index: int
setter: CardData
guesser: CardData
@dataclass
class Player:
name: str
role: PlayerRole