PamGram/core/services/history_data/models.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
1.7 KiB
Python
Raw Permalink Normal View History

import enum
from pydantic import BaseModel
from simnet.models.starrail.chronicle.challenge import StarRailChallenge
from simnet.models.starrail.chronicle.challenge_boss import StarRailChallengeBoss, StarRailChallengeBossGroup
from simnet.models.starrail.chronicle.challenge_story import StarRailChallengeStory, StarRailChallengeStoryGroup
2024-05-24 12:31:53 +00:00
from simnet.models.starrail.diary import StarRailDiary
from gram_core.services.history_data.models import HistoryData
__all__ = (
"HistoryData",
"HistoryDataTypeEnum",
"HistoryDataAbyss",
"HistoryDataChallengeStory",
"HistoryDataChallengeBoss",
2024-05-24 12:31:53 +00:00
"HistoryDataLedger",
)
class HistoryDataTypeEnum(int, enum.Enum):
ABYSS = 0 # 混沌回忆
CHALLENGE_STORY = 1 # 虚构叙事
2024-05-24 12:31:53 +00:00
LEDGER = 2 # 开拓月历
CHALLENGE_BOSS = 3 # 末日幻影
class HistoryDataAbyss(BaseModel):
abyss_data: StarRailChallenge
@classmethod
def from_data(cls, data: HistoryData) -> "HistoryDataAbyss":
return cls.parse_obj(data.data)
class HistoryDataChallengeStory(BaseModel):
story_data: StarRailChallengeStory
group: StarRailChallengeStoryGroup
@classmethod
def from_data(cls, data: HistoryData) -> "HistoryDataChallengeStory":
return cls.parse_obj(data.data)
2024-05-24 12:31:53 +00:00
class HistoryDataChallengeBoss(BaseModel):
boss_data: StarRailChallengeBoss
group: StarRailChallengeBossGroup
@classmethod
def from_data(cls, data: HistoryData) -> "HistoryDataChallengeBoss":
return cls.parse_obj(data.data)
2024-05-24 12:31:53 +00:00
class HistoryDataLedger(BaseModel):
diary_data: StarRailDiary
@classmethod
def from_data(cls, data: HistoryData) -> "HistoryDataLedger":
return cls.parse_obj(data.data)