# This file was auto-generated by Fern from our API Definition.

import datetime as dt
import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel


class VoiceProfileResponse(UniversalBaseModel):
    """
    Response schema for a voice profile.
    """

    id: str
    organization_id: str
    created_by_user_id: str
    name: str
    tts_provider: str
    tts_model: str
    voice_id: str
    personality: str
    system_prompt: typing.Optional[str] = None
    trigger_config: typing.Dict[str, typing.Any]
    stt_provider: str
    stt_model: str
    emotion_provider: str
    emotion_model: str
    emotion_enabled: bool
    model_key: str
    max_response_tokens: int
    temperature: float
    context_window_minutes: int
    max_context_tokens: int
    default_emotion: str
    emotion_adaptation: bool
    is_default: bool
    created_at: dt.datetime
    updated_at: dt.datetime

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
