|
# retoor <retoor@molodetz.nl>
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Optional
|
|
|
|
from devplacepy.schemas.base import _Out
|
|
|
|
|
|
class WarPersonOut(_Out):
|
|
uid: str = ""
|
|
username: str = ""
|
|
avatar_seed: Optional[str] = None
|
|
level: int = 1
|
|
|
|
|
|
class WarContributorOut(WarPersonOut):
|
|
faction: str = ""
|
|
hp: int = 0
|
|
|
|
|
|
class WarEventOut(_Out):
|
|
seq: int = 0
|
|
kind: str = ""
|
|
message: str = ""
|
|
faction: str = ""
|
|
created_at: str = ""
|
|
hp_a: Optional[int] = None
|
|
hp_b: Optional[int] = None
|
|
damage: Optional[int] = None
|
|
winner: Optional[str] = None
|
|
|
|
|
|
class WarViewerOut(_Out):
|
|
faction: str = ""
|
|
hp: int = 0
|
|
rank: int = 0
|
|
fight_count: int = 0
|
|
last_fight_at: str = ""
|
|
next_fight_at: str = ""
|
|
can_fight: bool = False
|
|
|
|
|
|
class WarOut(_Out):
|
|
uid: str = ""
|
|
post_uid: str = ""
|
|
post_url: str = ""
|
|
post_title: str = ""
|
|
author: Optional[WarPersonOut] = None
|
|
faction_a: str = ""
|
|
faction_b: str = ""
|
|
hp_a: int = 0
|
|
hp_b: int = 0
|
|
pct_a: int = 50
|
|
pct_b: int = 50
|
|
leader: str = ""
|
|
fighter_count: int = 0
|
|
status: str = "active"
|
|
winner: str = ""
|
|
winner_label: str = ""
|
|
created_at: str = ""
|
|
ends_at: str = ""
|
|
ends_in: str = ""
|
|
resolved_at: str = ""
|
|
last_seq: int = 0
|
|
fight_cost: int = 0
|
|
top_contributors: list[WarContributorOut] = []
|
|
recent_events: list[WarEventOut] = []
|
|
viewer: Optional[WarViewerOut] = None
|
|
|
|
|
|
class BattlesOut(_Out):
|
|
battles: list[WarOut] = []
|
|
current_filter: str = "active"
|
|
counts: dict = {}
|
|
search: str = ""
|
|
pagination: dict = {}
|
|
|
|
|
|
class WarEventsOut(_Out):
|
|
events: list[WarEventOut] = []
|
|
status: str = ""
|