"""Schemas — Interview AI highlights (SOW interview replay intelligence)."""

from typing import Any
from uuid import UUID

from pydantic import BaseModel, Field

from app.schemas.common import StubMeta
from app.schemas.interviews import TranscriptTurn


class InterviewHighlightsRequest(BaseModel):
    """POST /api/v1/interview-highlights/generate"""

    correlation_id: UUID | None = None
    interview_id: str
    candidate_id: str | None = None
    role_title: str
    transcript: list[TranscriptTurn] = Field(default_factory=list)
    scorecard: dict[str, Any] = Field(default_factory=dict)
    language: str = Field(default="en", min_length=2, max_length=10)
    options: dict[str, Any] = Field(default_factory=dict)


class HighlightItem(BaseModel):
    kind: str  # strength | weakness | flagged
    text: str
    timestamp_ms: int | None = None
    turn_id: str | None = None


class InterviewHighlightsResponse(StubMeta):
    correlation_id: UUID | None = None
    interview_id: str
    strengths: list[HighlightItem] = Field(default_factory=list)
    weaknesses: list[HighlightItem] = Field(default_factory=list)
    flagged_responses: list[HighlightItem] = Field(default_factory=list)
    summary_markdown: str | None = None
