from fastapi import APIRouter, Depends, HTTPException from app.services.auth_service import authenticate_user, create_access_token from app.models.auth import LoginRequest, LoginResponse router = APIRouter() @router.post("/login", response_model=LoginResponse) async def login(user_data: LoginRequest): user = await authenticate_user(user_data.email, user_data.password) 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)