"""Роутер справочника команд для аутентифицированных пользователей. Отдельно от `/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]