Source code for asyncpixel.models.games

"""Game related objects."""
import datetime
from typing import Optional

from asyncpixel.constants import get_game_types
from pydantic import BaseModel
from pydantic import validator

from .game_type import GameType
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] map: Optional[str] ended: Optional[datetime.datetime] = None @validator("game_type", pre=True) def validate_game_type(cls, v: str) -> GameType: # noqa: B902, N805, D102 game_type = [game for game in get_game_types() if game.type_name == v][0] return game_type class Config: """Config.""" alias_generator = to_camel