from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.reference_checks import (
    ReferenceQuestionnaireRequest,
    ReferenceQuestionnaireResponse,
    ReferenceReportRequest,
    ReferenceReportResponse,
)
from app.services.reference_checks import ReferenceChecksService

router = APIRouter(prefix="/reference-checks")
_service = ReferenceChecksService()


@router.post(
    "/questionnaire",
    response_model=ReferenceQuestionnaireResponse,
    status_code=status.HTTP_200_OK,
    summary="Reference Check Questionnaire",
    dependencies=[Depends(verify_internal_token)],
)
async def create_questionnaire(
    payload: ReferenceQuestionnaireRequest,
) -> ReferenceQuestionnaireResponse:
    return await _service.questionnaire(payload)


@router.post(
    "/report",
    response_model=ReferenceReportResponse,
    status_code=status.HTTP_200_OK,
    summary="Reference Check Report",
    dependencies=[Depends(verify_internal_token)],
)
async def create_report(payload: ReferenceReportRequest) -> ReferenceReportResponse:
    return await _service.report(payload)
