first commit
This commit is contained in:
50
repositories/team_coach_repository.py
Normal file
50
repositories/team_coach_repository.py
Normal file
@@ -0,0 +1,50 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user