Первоначальная версия VidConf

This commit is contained in:
2026-07-23 01:04:01 +03:00
commit 896455381a
335 changed files with 61527 additions and 0 deletions

31
backend/api/teams.py Normal file
View File

@@ -0,0 +1,31 @@
"""Роутер справочника команд для аутентифицированных пользователей.
Отдельно от `/admin/teams` (админ-only CRUD): здесь только чтение полного
списка — нужно странице профиля (выбор команды). В отличие от
`GET /auth/registration-options`, список НЕ гасится тумблером
`registration_team_choice` (та настройка — только про публичную форму
регистрации, не про профиль уже аутентифицированного пользователя).
"""
from typing import Annotated
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from api.deps import get_current_user
from core.db import get_session
from models.user import User
from repositories.admin import TeamRepository
from schemas.admin import TeamOut
router = APIRouter(prefix="/api/v1/teams", tags=["teams"])
@router.get("", response_model=list[TeamOut])
async def list_teams(
user: Annotated[User, Depends(get_current_user)],
session: Annotated[AsyncSession, Depends(get_session)],
) -> list[TeamOut]:
"""Полный справочник команд, отсортированный по названию (выбор команды в профиле)."""
items, _ = await TeamRepository(session).list_all()
return [TeamOut.model_validate(team) for team in items]