from __future__ import annotations from typing import Annotated from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from app.api.deps import get_db from app.schemas.auth import LoginRequest, LoginResponse from app.services.auth import AuthService router = APIRouter(prefix="/auth") DbSession = Annotated[Session, Depends(get_db)] @router.post("/login", response_model=LoginResponse) def login(payload: LoginRequest, db: DbSession) -> LoginResponse: try: return AuthService(db).login(payload) except ValueError as exc: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=str(exc)) from exc