Files
WFL/repositories/team_coach_repository.py

50 lines
1.4 KiB
Python

from repositories.match_coach_repository import get_match_coaches_grouped
from db import get_connection
def _normalize_coach(c: dict) -> dict:
return {
"coach_id": c.get("coach_id"),
"coach_name": c.get("coach_name", "") or "",
"role": c.get("role", "") or "",
}
def get_team_coaches_for_match_editor(
team_id: int,
match_id: int | None = None,
home_team_id: int | None = None,
away_team_id: int | None = None,
) -> list[dict]:
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute(
"""
SELECT
c.id AS coach_id,
COALESCE(c.player, c.name, '') AS coach_name,
COALESCE(c.amplua, '') AS role
FROM coaches c
WHERE c.team_id = %s
ORDER BY
CASE
WHEN LOWER(COALESCE(c.amplua, '')) LIKE '%%глав%%' THEN 0
ELSE 1
END,
COALESCE(c.player, c.name, ''),
c.id
""",
(team_id,),
)
rows = cur.fetchall()
return [
{
"coach_id": row[0],
"coach_name": row[1] or "",
"role": row[2] or "",
}
for row in rows
]
finally:
conn.close()