SIMNet/simnet/models/starrail/chronicle/museum.py

71 lines
1.5 KiB
Python
Raw Normal View History

2023-06-11 14:18:09 +00:00
"""Starrail Museum models."""
from typing import List
from simnet.models.base import APIModel
class StarRailMuseumBasic(APIModel):
"""Starrail Museum basic info."""
current_exp: int
max_exp: int
exhibition_num: int
total_exhibition: int
director_num: int
total_director: int
phase: str
@property
def progress_exp(self) -> float:
"""Get progress exp."""
return self.current_exp / self.max_exp
@property
def progress_exhibition(self) -> float:
"""Get progress exhibition."""
return self.exhibition_num / self.total_exhibition
@property
def progress_director(self) -> float:
"""Get progress director."""
return self.director_num / self.total_director
class StarRailMuseumExhibition(APIModel):
"""Starrail Museum exhibition info."""
id: str
name: str
desc: str
is_unlock: bool
icon: str
class StarRailMuseumRegion(APIModel):
"""Starrail Museum region info."""
name: str
exhibition_num: int
total_exhibition: int
exhibitions: List[StarRailMuseumExhibition]
icon: str
class StarRailMuseumDirector(APIModel):
"""Starrail Museum director info."""
id: str
name: str
desc: str
is_unlock: bool
icon: str
class StarRailMuseumDetail(APIModel):
"""Starrail Museum detail info."""
regions: List[StarRailMuseumRegion]
director: List[StarRailMuseumDirector]
exhibition_more: str
director_more: str