from pydantic import BaseModel from typing import Optional class SRToolData(BaseModel): class RelicSubAffixData(BaseModel): sub_affix_id: int count: int step: int class RelicData(BaseModel): level: int relic_id: int relic_set_id: int main_affix_id: int sub_affixes: Optional[list["SRToolData.RelicSubAffixData"]] = None internal_uid: int equip_avatar: int class LightconeData(BaseModel): level: int internal_uid: int equip_avatar: int item_id: int rank: int promotion: int class AvatarData(BaseModel): avatar_id: int data: Optional["SRToolData.AvatarInnerData"] = None level: int promotion: int techniques: Optional[list[int]] = [] sp_value: int sp_max: int class AvatarInnerData(BaseModel): rank: int skills: dict[str,int] class DynamicKey(BaseModel): key: Optional[str] = "" value: int class BlessingData(BaseModel): level: int id: int dynamic_key: Optional["SRToolData.DynamicKey"] = None class MonsterData(BaseModel): level: int monster_id: int amount: int class BattleConfigData(BaseModel): battle_type: Optional[str] = "" blessings: Optional[list["SRToolData.BlessingData"]] = None custom_stats: Optional[list["SRToolData.RelicSubAffixData"]] = None cycle_count: int monsters: Optional[list["SRToolData.MonsterData"]] = None path_resonance_id: int stage_id: int relics: Optional[list[RelicData]] = None lightcones: Optional[list[LightconeData]] = None avatars: Optional[dict[int,AvatarData]] = {} class SRToolDataReq(BaseModel): data: Optional[SRToolData] = None username: Optional[str] = "" password: Optional[str] = "" class SRToolDataRsp(BaseModel): status: int message: Optional[str] = ""