from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db from app.schemas.admin import AdminLoginRequest, AdminLoginResponse from app.services.admin_service import admin_login router = APIRouter() @router.post("/login") async def login(payload: AdminLoginRequest, session: AsyncSession = Depends(get_db)) -> dict: try: data = await admin_login(session, payload.username, payload.password) except ValueError as exc: raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(exc)) from exc return {"code": 0, "message": "ok", "data": AdminLoginResponse(**data).model_dump()}