"""Search-related data models."""
from __future__ import annotations
from typing import Literal
from dataclasses import dataclass, field
[docs]
@dataclass(frozen=True)
class SearchPlayerResult:
"""Player search result."""
player_id: int
url: str
ign: str | None = None
real_name: str | None = None
country: str | None = None
image_url: str | None = None
result_type: Literal["player"] = "player"
[docs]
@dataclass(frozen=True)
class SearchTeamResult:
"""Team search result."""
team_id: int
url: str
name: str | None = None
country: str | None = None
logo_url: str | None = None
is_inactive: bool = False
result_type: Literal["team"] = "team"
[docs]
@dataclass(frozen=True)
class SearchEventResult:
"""Event search result."""
event_id: int
url: str
name: str | None = None
date_range: str | None = None
prize: str | None = None
image_url: str | None = None
result_type: Literal["event"] = "event"
[docs]
@dataclass(frozen=True)
class SearchSeriesResult:
"""Series search result."""
series_id: int
url: str
name: str | None = None
image_url: str | None = None
result_type: Literal["series"] = "series"
[docs]
@dataclass(frozen=True)
class SearchResults:
"""Combined search results."""
query: str
total_results: int
players: list[SearchPlayerResult] = field(default_factory=list)
teams: list[SearchTeamResult] = field(default_factory=list)
events: list[SearchEventResult] = field(default_factory=list)
series: list[SearchSeriesResult] = field(default_factory=list)