Source code for clash_royale.models.global_tournament
from __future__ import annotations
from pydantic import Field
from typing_extensions import Literal
from .base import CRBaseModel
from .common import GameMode
[docs]
class GlobalTournament(CRBaseModel):
"""Represents a global tournament."""
tag: str
title: str
start_time: str = Field(alias="startTime")
end_time: str = Field(alias="endTime")
max_losses: int = Field(alias="maxLosses")
min_exp_level: int = Field(alias="minExpLevel")
tournament_level: int = Field(alias="tournamentLevel")
milestones: list[SurvivalMilestoneReward] = Field(default_factory=list)
free_tier_rewards: list[SurvivalMilestoneReward] | None = Field(
default=None, alias="freeTierRewards"
)
top_rank_reward: list[SurvivalMilestoneReward] | None = Field(
default=None, alias="topRankReward"
)
game_mode: GameMode | None = Field(default=None, alias="gameMode")
max_top_reward_rank: int | None = Field(default=None, alias="maxTopRewardRank")
[docs]
class SurvivalMilestoneReward(CRBaseModel):
"""Represents a survival milestone reward in Clash Royale."""
rarity: Literal["common", "rare", "epic", "legendary", "champion"]
chest: str
resources: Literal["gold", "unknown"]
type: Literal[
"none",
"card_stack",
"chest",
"card_stack_random",
"resource",
"trade_token",
"consumable",
]
amount: int
card: SurvivalMilestoneRewardCard | None = None
consumable_name: str | None = Field(default=None, alias="consumableName")
wins: int
[docs]
class SurvivalMilestoneRewardCard(CRBaseModel):
"""Represents a card in a survival milestone reward."""
id: int
name: str
rarity: Literal["common", "rare", "epic", "legendary", "champion"]
max_level: int = Field(alias="maxLevel")
elixir_cost: int = Field(alias="elixirCost")
max_evolution_level: int | None = Field(default=None, alias="maxEvolutionLevel")