diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py index d9b789e..bfb86b7 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/league_all.py @@ -5,9 +5,19 @@ from .base import FailedModel from .base import SuccessModel as BaseSuccessModel +class _User(BaseModel): + id: str = Field(..., alias='_id') + username: str + role: str + xp: float + supporter: bool + verified: bool + country: str | None = None + + class SuccessModel(BaseSuccessModel): class Data(BaseModel): - class ValidUser(BaseModel): + class ValidUser(_User): class League(BaseModel): gamesplayed: int gameswon: int @@ -21,16 +31,9 @@ class SuccessModel(BaseSuccessModel): vs: float decaying: bool - id: str = Field(..., alias='_id') - username: str - role: str - xp: float league: League - supporter: bool - verified: bool - country: str | None = None - class InvalidUser(BaseModel): + class InvalidUser(_User): class League(BaseModel): gamesplayed: int gameswon: int @@ -44,14 +47,7 @@ class SuccessModel(BaseSuccessModel): vs: float | None = None decaying: bool - id: str = Field(..., alias='_id') - username: str - role: str - xp: float league: League - supporter: bool - verified: bool - country: str | None users: list[ValidUser | InvalidUser] diff --git a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py index e191f20..a352813 100644 --- a/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py +++ b/nonebot_plugin_tetris_stats/game_data_processor/io_data_processor/schemas/user_records.py @@ -68,31 +68,25 @@ class EndContext(BaseModel): gametype: str -class BaseModeRecord(BaseModel): - class SoloRecord(BaseModel): - class User(BaseModel): - id: str = Field(..., alias='_id') - username: str +class _User(BaseModel): + id: str = Field(..., alias='_id') + username: str - id: str = Field(..., alias='_id') - stream: str - replayid: str - user: User - ts: datetime - ismulti: bool | None = None + +class _Record(BaseModel): + id: str = Field(..., alias='_id') + stream: str + replayid: str + user: _User + ts: datetime + ismulti: bool | None = None + + +class BaseModeRecord(BaseModel): + class SoloRecord(_Record): endcontext: EndContext - class MultiRecord(BaseModel): - class User(BaseModel): - id: str = Field(..., alias='_id') - username: str - - id: str = Field(..., alias='_id') - stream: str - replayid: str - user: User - ts: datetime - ismulti: bool | None = None + class MultiRecord(_Record): endcontext: list[EndContext] record: SoloRecord | MultiRecord | None = None