"""Общие зависимости FastAPI: авторизация и сессия БД."""
from typing import Annotated, cast
from fastapi import Depends, HTTPException, Request
from sqlalchemy.orm import Session
from app.db import get_db
DbDep = Annotated[Session, Depends(get_db)]
def require_user(request: Request) -> dict[str, str]:
"""Защита API: пользователь должен быть залогинен (сессия SSO)."""
user = request.session.get("user")
if not user:
raise HTTPException(status_code=401, detail="Not authenticated")
return cast(dict[str, str], user)
UserDep = Annotated[dict[str, str], Depends(require_user)]