Allows each sub-zone within a route group to have its own independent encounter when the Pinwheel Clause rule is enabled (default on), instead of the entire group sharing a single encounter. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
77 lines
1.5 KiB
Python
77 lines
1.5 KiB
Python
from app.schemas.base import CamelModel
|
|
|
|
|
|
class RouteResponse(CamelModel):
|
|
id: int
|
|
name: str
|
|
game_id: int
|
|
order: int
|
|
parent_route_id: int | None = None
|
|
pinwheel_zone: int | None = None
|
|
encounter_methods: list[str] = []
|
|
|
|
|
|
class GameResponse(CamelModel):
|
|
id: int
|
|
name: str
|
|
slug: str
|
|
generation: int
|
|
region: str
|
|
box_art_url: str | None
|
|
release_year: int | None
|
|
color: str | None
|
|
|
|
|
|
class RouteWithChildrenResponse(RouteResponse):
|
|
children: list[RouteResponse] = []
|
|
|
|
|
|
class GameDetailResponse(GameResponse):
|
|
routes: list[RouteResponse] = []
|
|
|
|
|
|
# --- Admin schemas ---
|
|
|
|
|
|
class GameCreate(CamelModel):
|
|
name: str
|
|
slug: str
|
|
generation: int
|
|
region: str
|
|
box_art_url: str | None = None
|
|
release_year: int | None = None
|
|
color: str | None = None
|
|
|
|
|
|
class GameUpdate(CamelModel):
|
|
name: str | None = None
|
|
slug: str | None = None
|
|
generation: int | None = None
|
|
region: str | None = None
|
|
box_art_url: str | None = None
|
|
release_year: int | None = None
|
|
color: str | None = None
|
|
|
|
|
|
class RouteCreate(CamelModel):
|
|
name: str
|
|
order: int
|
|
parent_route_id: int | None = None
|
|
pinwheel_zone: int | None = None
|
|
|
|
|
|
class RouteUpdate(CamelModel):
|
|
name: str | None = None
|
|
order: int | None = None
|
|
parent_route_id: int | None = None
|
|
pinwheel_zone: int | None = None
|
|
|
|
|
|
class RouteReorderItem(CamelModel):
|
|
id: int
|
|
order: int
|
|
|
|
|
|
class RouteReorderRequest(CamelModel):
|
|
routes: list[RouteReorderItem]
|