Files
nuzlocke-tracker/backend/src/app/schemas/game.py
Julian Tabel f7f5417b6b Add all Gen 1-9 games with colors to seed data
- 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>
2026-02-06 11:46:10 +01:00

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]