Source code for asyncpixel.models.games
"""Game related objects."""
import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict, field_validator
from asyncpixel.constants import GameType
from asyncpixel.utils import validate_game_type
from .utils import to_camel
[docs]class Game(BaseModel):
"""Game class.
Args:
date (datetime.datetime): Time game started.
game_type (GameType): Game Type.
mode (Optional[str]): Game mode.
map (Optional[str]): Map the game is on.
ended (Optional[datetime.datetime]): Time game ended. Defaults to None.
"""
date: datetime.datetime
game_type: GameType
mode: Optional[str] = None
map: Optional[str] = None
ended: Optional[datetime.datetime] = None
@field_validator("game_type", mode="before")
@classmethod
def _validate_game_type(cls, v: str) -> GameType:
"""Turn game type to correct format."""
return validate_game_type(v)
model_config = ConfigDict(alias_generator=to_camel)