"""Schemas — Interviewer persona catalog."""

from pydantic import BaseModel, Field

from app.prompts import PERSONA_DESCRIPTIONS, Persona


class PersonaInfo(BaseModel):
    id: Persona
    label: str
    description: str


class PersonaListResponse(BaseModel):
    personas: list[PersonaInfo] = Field(default_factory=list)


def build_persona_catalog() -> PersonaListResponse:
    label_overrides = {
        Persona.TECHNICAL: "Technical Interviewer",
        Persona.HR_BEHAVIORAL: "HR / Behavioral Interviewer",
        Persona.FRIENDLY_COACH: "Friendly Coach",
        Persona.EXECUTIVE: "Executive Leadership Panel",
        Persona.SALES: "Sales & Customer Success Interviewer",
        Persona.HEALTHCARE: "Healthcare & Clinical Interviewer",
        Persona.FINANCE: "Finance & Consulting Interviewer",
        Persona.CUSTOM: "Custom Company Persona",
    }
    personas = [
        PersonaInfo(
            id=persona,
            label=label_overrides.get(persona, persona.value.replace("_", " ").title()),
            description=description,
        )
        for persona, description in PERSONA_DESCRIPTIONS.items()
    ]
    return PersonaListResponse(personas=personas)
