"""DailyChallenge-related data models.""" from dataclasses import dataclass, field @dataclass class DailyChallenge: """Daily challenge information.""" token: str map_name: str = "" date: str = "" time_limit: int = 0 completed: bool = False score: int | None = None raw_data: dict = field(default_factory=dict) @classmethod def from_api_response(cls, data: dict) -> "DailyChallenge": """Create DailyChallenge from API response.""" return cls( token=data.get("token", data.get("challengeToken", "")), map_name=( data.get("map", {}).get("name", "") if isinstance(data.get("map"), dict) else "" ), date=data.get("date", data.get("day", "")), time_limit=data.get("timeLimit", 0), completed=data.get("completed", data.get("played", False)), score=data.get("score"), raw_data=data, )