from pydantic import BaseModel from app.schemas.base import CamelModel class PokemonResponse(CamelModel): id: int national_dex: int name: str types: list[str] sprite_url: str | None class RouteEncounterResponse(CamelModel): id: int route_id: int pokemon_id: int encounter_method: str encounter_rate: int min_level: int max_level: int class RouteEncounterDetailResponse(RouteEncounterResponse): pokemon: PokemonResponse # --- Admin schemas --- class PokemonCreate(CamelModel): national_dex: int name: str types: list[str] sprite_url: str | None = None class PokemonUpdate(CamelModel): national_dex: int | None = None name: str | None = None types: list[str] | None = None sprite_url: str | None = None class RouteEncounterCreate(CamelModel): pokemon_id: int encounter_method: str encounter_rate: int min_level: int max_level: int class RouteEncounterUpdate(CamelModel): encounter_method: str | None = None encounter_rate: int | None = None min_level: int | None = None max_level: int | None = None class BulkImportItem(BaseModel): national_dex: int name: str types: list[str] sprite_url: str | None = None class BulkImportResult(CamelModel): created: int updated: int errors: list[str]