тест 9

This commit is contained in:
2026-05-15 14:35:11 +03:00
parent 4e6806c553
commit 79c679f35d
3 changed files with 33 additions and 1 deletions

30
app.py
View File

@@ -1421,6 +1421,36 @@ class MatchChannelPayload(BaseModel):
channel: str = "" channel: str = ""
@app.post("/admin/session/{session_token}/schedule/channel")
def update_schedule_channel(session_token: str, payload: MatchChannelPayload):
session_row = get_match_session_by_token(session_token)
if not session_row:
return JSONResponse({"error": "session_not_found"}, status_code=404)
allowed = {"", "match", "match_premier", "match_and_premier"}
if payload.channel not in allowed:
return JSONResponse({"error": "invalid_channel"}, status_code=400)
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute(
"""
UPDATE matches
SET channel = %s
WHERE external_id = %s
""",
(payload.channel, payload.match_external_id),
)
conn.commit()
return {"success": True}
except Exception as e:
conn.rollback()
return JSONResponse({"error": str(e)}, status_code=500)
finally:
conn.close()
@app.get("/vmix/session/{session_token}/schedule") @app.get("/vmix/session/{session_token}/schedule")
def vmix_schedule(session_token: str): def vmix_schedule(session_token: str):
session_row = get_match_session_by_token(session_token) session_row = get_match_session_by_token(session_token)

View File

@@ -238,7 +238,8 @@ def get_tour_schedule_by_match_id(match_id: int) -> list[dict]:
m.home_score, m.home_score,
m.away_score, m.away_score,
ht.name AS home_team_name, ht.name AS home_team_name,
at.name AS away_team_name at.name AS away_team_name,
COALESCE(m.channel, '') AS channel
FROM matches m FROM matches m
LEFT JOIN teams ht ON ht.id = m.home_team_id LEFT JOIN teams ht ON ht.id = m.home_team_id
LEFT JOIN teams at ON at.id = m.away_team_id LEFT JOIN teams at ON at.id = m.away_team_id
@@ -262,6 +263,7 @@ def get_tour_schedule_by_match_id(match_id: int) -> list[dict]:
"away_score": r[6], "away_score": r[6],
"home_team_name": r[7] or "", "home_team_name": r[7] or "",
"away_team_name": r[8] or "", "away_team_name": r[8] or "",
"channel": r[9] or "",
} }
for r in rows for r in rows
] ]

BIN
vmix.zip

Binary file not shown.