Files
nuzlocke-tracker/backend/src/app/schemas/run.py
Julian Tabel 0a519e356e
Some checks failed
CI / backend-tests (push) Failing after 1m16s
CI / frontend-tests (push) Successful in 57s
feat: add auth system, boss pokemon details, moves/abilities API, and run ownership
Add user authentication with login/signup/protected routes, boss pokemon
detail fields and result team tracking, moves and abilities selector
components and API, run ownership and visibility controls, and various
UI improvements across encounters, run list, and journal pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:41:38 +01:00

60 lines
1.4 KiB
Python

from datetime import datetime
from uuid import UUID
from app.models.nuzlocke_run import RunVisibility
from app.schemas.base import CamelModel
from app.schemas.encounter import EncounterDetailResponse
from app.schemas.game import GameResponse
class OwnerResponse(CamelModel):
id: UUID
display_name: str | None = None
class RunCreate(CamelModel):
game_id: int
name: str
rules: dict = {}
naming_scheme: str | None = None
visibility: RunVisibility = RunVisibility.PUBLIC
class RunUpdate(CamelModel):
name: str | None = None
status: str | None = None
rules: dict | None = None
hof_encounter_ids: list[int] | None = None
naming_scheme: str | None = None
visibility: RunVisibility | None = None
class RunResponse(CamelModel):
id: int
game_id: int
name: str
status: str
rules: dict
hof_encounter_ids: list[int] | None = None
naming_scheme: str | None = None
visibility: RunVisibility
owner: OwnerResponse | None = None
started_at: datetime
completed_at: datetime | None
class RunGenlockeContext(CamelModel):
genlocke_id: int
genlocke_name: str
leg_order: int
total_legs: int
is_final_leg: bool
retired_pokemon_ids: list[int] = []
class RunDetailResponse(RunResponse):
game: GameResponse
encounters: list[EncounterDetailResponse] = []
genlocke: RunGenlockeContext | None = None
transfer_encounter_ids: list[int] = []