2026-02-05 15:09:05 +01:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
from app.schemas.base import CamelModel
|
|
|
|
|
from app.schemas.encounter import EncounterDetailResponse
|
|
|
|
|
from app.schemas.game import GameResponse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RunCreate(CamelModel):
|
|
|
|
|
game_id: int
|
|
|
|
|
name: str
|
|
|
|
|
rules: dict = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RunUpdate(CamelModel):
|
|
|
|
|
name: str | None = None
|
|
|
|
|
status: str | None = None
|
|
|
|
|
rules: dict | None = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RunResponse(CamelModel):
|
|
|
|
|
id: int
|
|
|
|
|
game_id: int
|
|
|
|
|
name: str
|
|
|
|
|
status: str
|
|
|
|
|
rules: dict
|
|
|
|
|
started_at: datetime
|
|
|
|
|
completed_at: datetime | None
|
|
|
|
|
|
|
|
|
|
|
2026-02-09 09:47:28 +01:00
|
|
|
class RunGenlockeContext(CamelModel):
|
|
|
|
|
genlocke_id: int
|
|
|
|
|
genlocke_name: str
|
|
|
|
|
leg_order: int
|
|
|
|
|
total_legs: int
|
|
|
|
|
is_final_leg: bool
|
2026-02-09 10:05:03 +01:00
|
|
|
retired_pokemon_ids: list[int] = []
|
2026-02-09 09:47:28 +01:00
|
|
|
|
|
|
|
|
|
2026-02-05 15:09:05 +01:00
|
|
|
class RunDetailResponse(RunResponse):
|
|
|
|
|
game: GameResponse
|
|
|
|
|
encounters: list[EncounterDetailResponse] = []
|
2026-02-09 09:47:28 +01:00
|
|
|
genlocke: RunGenlockeContext | None = None
|