"""Schemas — Multi-language AI content translation (SOW Internationalization)."""

from typing import Any
from uuid import UUID

from pydantic import BaseModel, Field

from app.schemas.common import StubMeta


class I18nTranslateRequest(BaseModel):
    """POST /api/v1/i18n/translate"""

    correlation_id: UUID | None = None
    source_language: str = Field(default="en", min_length=2, max_length=10)
    target_language: str = Field(..., min_length=2, max_length=10)
    content_type: str = Field(
        default="interview",
        description="interview | questions | feedback | prep | assessment | ui_snippet",
    )
    texts: list[str] = Field(..., min_length=1)
    cultural_sensitivity: bool = True
    options: dict[str, Any] = Field(default_factory=dict)


class TranslatedItem(BaseModel):
    source: str
    translated: str
    notes: str | None = None


class I18nTranslateResponse(StubMeta):
    correlation_id: UUID | None = None
    source_language: str
    target_language: str
    translations: list[TranslatedItem] = Field(default_factory=list)
