from fastapi import APIRouter, Depends, status

from app.deps import verify_internal_token
from app.schemas.extra import CustomPersonaRequest, CustomPersonaResponse
from app.schemas.personas import PersonaListResponse, build_persona_catalog
from app.services.extra import CustomPersonaService

router = APIRouter()
_custom = CustomPersonaService()


@router.get(
    "/personas",
    response_model=PersonaListResponse,
    summary="List interviewer personas",
    dependencies=[Depends(verify_internal_token)],
)
async def list_interviewer_personas() -> PersonaListResponse:
    """SOW persona selector catalog for interview + drafting flows."""
    return build_persona_catalog()


@router.post(
    "/personas/custom",
    response_model=CustomPersonaResponse,
    status_code=status.HTTP_200_OK,
    summary="Create custom company persona",
    dependencies=[Depends(verify_internal_token)],
)
async def create_custom_persona(payload: CustomPersonaRequest) -> CustomPersonaResponse:
    return await _custom.create(payload)
