Add genlocke creation wizard with backend API and 4-step frontend

Implements the genlocke creation feature end-to-end: Genlocke and
GenlockeLeg models with migration, POST /genlockes endpoint that
creates the genlocke with all legs and auto-starts the first run,
and a 4-step wizard UI (Name, Select Games with preset templates,
Rules, Confirm) at /genlockes/new.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-09 09:23:48 +01:00
parent aaaeb2146e
commit 7851e14c2f
18 changed files with 923 additions and 29 deletions

View File

@@ -0,0 +1,30 @@
from datetime import datetime
from app.schemas.base import CamelModel
from app.schemas.game import GameResponse
class GenlockeCreate(CamelModel):
name: str
game_ids: list[int]
genlocke_rules: dict = {}
nuzlocke_rules: dict = {}
class GenlockeLegResponse(CamelModel):
id: int
genlocke_id: int
game_id: int
run_id: int | None = None
leg_order: int
game: GameResponse
class GenlockeResponse(CamelModel):
id: int
name: str
status: str
genlocke_rules: dict
nuzlocke_rules: dict
created_at: datetime
legs: list[GenlockeLegResponse] = []