from fastapi import APIRouter, Depends, HTTPException from app.services.auth_service import authenticate_user, create_access_token, get_current_user from app.models.auth import LoginRequest, LoginResponse from app.db.database import get_db, AsyncSession router = APIRouter() @router.post("/login", response_model=LoginResponse) async def login( user_data: LoginRequest, db: AsyncSession = Depends(get_db) ): user = await authenticate_user(user_data.email, user_data.password, db) if not user: raise HTTPException(status_code=401, detail="Invalid credentials") access_token = create_access_token(data={"sub": user.email}) return LoginResponse(access_token=access_token, token_type="bearer", user=user) @router.post("/logout") async def logout(current_user: dict = Depends(get_current_user)): return {"message": "Successfully logged out"}