from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.helpers import (
    ScenarioGenerateRequest,
    ScenarioGenerateResponse,
    ScenarioGradeRequest,
    ScenarioGradeResponse,
)
from app.services.helpers import ScenariosService

router = APIRouter(prefix="/scenarios")
_service = ScenariosService()


@router.post(
    "/generate",
    response_model=ScenarioGenerateResponse,
    status_code=status.HTTP_200_OK,
    summary="Role Scenario Evaluation (Generate)",
    dependencies=[Depends(verify_internal_token)],
)
async def generate_scenarios(
    payload: ScenarioGenerateRequest,
) -> ScenarioGenerateResponse:
    return await _service.generate(payload)


@router.post(
    "/grade",
    response_model=ScenarioGradeResponse,
    status_code=status.HTTP_200_OK,
    summary="Role Scenario Grading",
    dependencies=[Depends(verify_internal_token)],
)
async def grade_scenarios(payload: ScenarioGradeRequest) -> ScenarioGradeResponse:
    return await _service.grade(payload)
