from fastapi import APIRouter, Depends, Request
from sqlalchemy.ext.asyncio import AsyncSession

from src.auth.schemas import LoginRequest
from src.auth.service import AuthService
from src.database import get_db

router = APIRouter(prefix="/login", tags=["Auth"])


@router.post("")
async def login(
    request_data: LoginRequest,
    request: Request,
    db: AsyncSession = Depends(get_db),
):
    ip = request.client.host
    result = await AuthService.login(request_data, db, ip)
    return {
        "data": result,
        "status": True
    }