- Add 37 games from Gen 1-9 (Red/Blue through Scarlet/Violet) - Add color field to Game model matching box art/branding - Add migration for games.color column - Update fetch_pokeapi.py to fetch all games and output colors - Update seed loader to upsert game colors - Update frontend Game type to include color field Games without PokeAPI encounter data (ORAS, Let's Go, Sword/Shield, BDSP, Legends Arceus, Scarlet/Violet) have location structure but empty encounter tables. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
1.3 KiB
Python
73 lines
1.3 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
|
|
|
|
|
|
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
|
|
|
|
|
|
class RouteUpdate(CamelModel):
|
|
name: str | None = None
|
|
order: int | None = None
|
|
parent_route_id: int | None = None
|
|
|
|
|
|
class RouteReorderItem(CamelModel):
|
|
id: int
|
|
order: int
|
|
|
|
|
|
class RouteReorderRequest(CamelModel):
|
|
routes: list[RouteReorderItem]
|