from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.job_descriptions import (
    JobDescriptionDraftRequest,
    JobDescriptionDraftResponse,
)
from app.schemas.helpers import (
    JdInclusivityRewriteRequest,
    JdInclusivityRewriteResponse,
)
from app.services.job_descriptions import JobDescriptionsService
from app.services.helpers import JdInclusivityService

router = APIRouter(prefix="/job-descriptions")
_service = JobDescriptionsService()
_inclusivity = JdInclusivityService()


@router.post(
    "/draft",
    response_model=JobDescriptionDraftResponse,
    status_code=status.HTTP_200_OK,
    summary="Inclusive Job Description Draft",
    dependencies=[Depends(verify_internal_token)],
)
async def draft_job_description(
    payload: JobDescriptionDraftRequest,
) -> JobDescriptionDraftResponse:
    return await _service.draft(payload)


@router.post(
    "/rewrite",
    response_model=JdInclusivityRewriteResponse,
    status_code=status.HTTP_200_OK,
    summary="Inclusive Job Description Rewrite",
    dependencies=[Depends(verify_internal_token)],
)
async def inclusivity_rewrite(
    payload: JdInclusivityRewriteRequest,
) -> JdInclusivityRewriteResponse:
    return await _inclusivity.rewrite(payload)
