BUILD119 — ручной счёт + SQL + составы
This commit is contained in:
@@ -624,6 +624,13 @@ class MappingDataService:
|
||||
context.setdefault("team1_id", game.home_team_external_id or "")
|
||||
context.setdefault("team2_id", game.away_team_external_id or "")
|
||||
control = session.scalar(select(GameControlState).where(GameControlState.game_external_id == resolved_game_id))
|
||||
if game is not None:
|
||||
score_control = HockeyDataService._score_control_payload(game, control)
|
||||
context.setdefault("score_home", str(score_control["home"]))
|
||||
context.setdefault("score_away", str(score_control["away"]))
|
||||
context.setdefault("score_external_home", str(score_control["external_home"]))
|
||||
context.setdefault("score_external_away", str(score_control["external_away"]))
|
||||
context.setdefault("score_manual", "1" if score_control["manual"] else "0")
|
||||
if control is not None:
|
||||
runtime_values = HockeyDataService._runtime_values_from_row(control)
|
||||
player_panel_labels: dict[str, str] = {}
|
||||
@@ -871,6 +878,24 @@ class MappingDataService:
|
||||
language=language,
|
||||
)
|
||||
result: list[dict[str, Any]] = []
|
||||
score_control = HockeyDataService._score_control_payload(game, control)
|
||||
score_fields = (
|
||||
("home", "Счёт HOME · LIVE", score_control["home"], "Оперативный счёт HOME. После первого ручного +/- становится главным до синхронизации."),
|
||||
("away", "Счёт AWAY · LIVE", score_control["away"], "Оперативный счёт AWAY. После первого ручного +/- становится главным до синхронизации."),
|
||||
("external_home", "Счёт HOME · SQL/API", score_control["external_home"], "Последний счёт HOME из базы/API; используется для первоначальной и ручной повторной синхронизации."),
|
||||
("external_away", "Счёт AWAY · SQL/API", score_control["external_away"], "Последний счёт AWAY из базы/API; используется для первоначальной и ручной повторной синхронизации."),
|
||||
("manual", "Ручной режим счёта", "1" if score_control["manual"] else "0", "1 — LIVE счёт зафиксирован оператором; 0 — LIVE следует SQL/API."),
|
||||
)
|
||||
for key, label, value, description in score_fields:
|
||||
result.append({
|
||||
"key": f"score.{key}",
|
||||
"label": label,
|
||||
"category": "Матч · Оперативный счёт",
|
||||
"value": value,
|
||||
"kind": "number" if key != "manual" else "text",
|
||||
"source_code": "live_control",
|
||||
"description": description,
|
||||
})
|
||||
period_fields = (
|
||||
("key", "Ключ периода", "text"),
|
||||
("number", "Номер периода / овертайма", "number"),
|
||||
|
||||
Reference in New Issue
Block a user