from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.questions import (
    QuestionGenRequest,
    QuestionGenResponse,
    RoleQuestionGenRequest,
    RoleQuestionGenResponse,
)
from app.services.questions import QuestionsService

router = APIRouter(prefix="/questions")
_service = QuestionsService()


@router.post(
    "/generate",
    response_model=QuestionGenResponse,
    status_code=status.HTTP_200_OK,
    summary="Generate practice questions",
    dependencies=[Depends(verify_internal_token)],
)
async def generate_questions(payload: QuestionGenRequest) -> QuestionGenResponse:
    return await _service.generate(payload)


@router.post(
    "/from-role",
    response_model=RoleQuestionGenResponse,
    status_code=status.HTTP_200_OK,
    summary="Generate role interview questions",
    dependencies=[Depends(verify_internal_token)],
)
async def generate_from_role(payload: RoleQuestionGenRequest) -> RoleQuestionGenResponse:
    return await _service.generate_from_role(payload)
