build 122 - стартовые пятерки

This commit is contained in:
2026-08-26 14:56:15 +03:00
parent 41ca064b3b
commit fe164c17f2
6 changed files with 529 additions and 22 deletions

View File

@@ -123,6 +123,23 @@ class GameScorePayload(BaseModel):
language: str = Field(default="ru", pattern="^(ru|en)$")
class GameLineAssignmentPayload(BaseModel):
model_config = ConfigDict(extra="ignore")
player_external_id: str = Field(min_length=1, max_length=64)
line_number: str = Field(default="", max_length=16)
sort_order: int = Field(default=0, ge=0, le=999)
class GameLinesPayload(BaseModel):
model_config = ConfigDict(extra="ignore")
side: str = Field(pattern="^(home|away)$")
assignments: list[GameLineAssignmentPayload] = Field(default_factory=list)
reset: bool = False
language: str = Field(default="ru", pattern="^(ru|en)$")
class ShootoutSetupPayload(BaseModel):
initial_attempts: int = Field(default=3)
reset: bool = False
@@ -1030,6 +1047,30 @@ def create_hockey_router(
except ValueError as error:
raise HTTPException(status_code=400, detail=str(error)) from error
@router.put("/games/{external_id}/lines")
async def update_game_lines(
external_id: str,
payload: GameLinesPayload,
user: HockeyUser = Depends(auth_dependency),
) -> dict[str, Any]:
try:
if payload.reset:
return service.reset_game_lines(
external_id,
side=payload.side,
updated_by=user.id,
language=payload.language,
)
return service.save_game_lines(
external_id,
side=payload.side,
assignments=[item.model_dump() for item in payload.assignments],
updated_by=user.id,
language=payload.language,
)
except ValueError as error:
raise HTTPException(status_code=400, detail=str(error)) from error
@router.put("/games/{external_id}/control/values")
async def update_game_values(
external_id: str,