from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.aptitude import (
    AptitudeGenerateRequest,
    AptitudeGenerateResponse,
    AptitudeGradeRequest,
    AptitudeGradeResponse,
)
from app.services.aptitude import AptitudeService

router = APIRouter(prefix="/aptitude")
_service = AptitudeService()


@router.post(
    "/generate",
    response_model=AptitudeGenerateResponse,
    status_code=status.HTTP_200_OK,
    summary="Timed Aptitude / Reasoning Test Generator",
    dependencies=[Depends(verify_internal_token)],
)
async def generate_aptitude(payload: AptitudeGenerateRequest) -> AptitudeGenerateResponse:
    return await _service.generate(payload)


@router.post(
    "/grade",
    response_model=AptitudeGradeResponse,
    status_code=status.HTTP_200_OK,
    summary="Aptitude Test Grading",
    dependencies=[Depends(verify_internal_token)],
)
async def grade_aptitude(payload: AptitudeGradeRequest) -> AptitudeGradeResponse:
    return await _service.grade(payload)
