30 lines
988 B
Python
30 lines
988 B
Python
"""SeasonStats-related data models."""
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class SeasonStats:
|
|
"""Competitive season statistics."""
|
|
season_id: str
|
|
season_name: str = ""
|
|
rank: int = 0
|
|
rating: int = 0
|
|
games_played: int = 0
|
|
wins: int = 0
|
|
division: str = ""
|
|
raw_data: dict = field(default_factory=dict)
|
|
|
|
@classmethod
|
|
def from_api_response(cls, data: dict) -> "SeasonStats":
|
|
"""Create SeasonStats from API response."""
|
|
return cls(
|
|
season_id=data.get("seasonId", data.get("id", "")),
|
|
season_name=data.get("seasonName", data.get("name", "")),
|
|
rank=data.get("rank", data.get("position", 0)),
|
|
rating=data.get("rating", data.get("elo", data.get("score", 0))),
|
|
games_played=data.get("gamesPlayed", data.get("games", 0)),
|
|
wins=data.get("wins", 0),
|
|
division=data.get("division", data.get("tier", "")),
|
|
raw_data=data,
|
|
)
|