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

import typing
import uuid

import pydantic

from ...core.pydantic_utilities import UniversalBaseModel
from .language import Language
from .letters_language import LettersLanguage
from .transcription_id import TranscriptionId


class TranscriptionRequestInfo(UniversalBaseModel):
    model: typing.Optional[str] = pydantic.Field(default=None)
    """
    Model to use for the transcription. Default is "v1", our newest model. Can also pass "v0", our original model.
    """

    id: typing.Optional[TranscriptionId] = pydantic.Field(default=None)
    """
    ID of the transcription
    """

    user_id: typing.Optional[uuid.UUID] = pydantic.Field(default=None)
    """
    ID of the user. If you want the transcription to be associated with your Sofer.Ai account pass your user_id.
    """

    title: typing.Optional[str] = pydantic.Field(default=None)
    """
    Title of the transcription
    """

    primary_language: typing.Optional[Language] = pydantic.Field(default=None)
    """
    Primary language of the audio content
    """

    lang_for_hebrew_words: typing.Optional[typing.List[LettersLanguage]] = pydantic.Field(default=None)
    """
    Specifies how Hebrew words should be transcribed when the primary language is English. - If you want Hebrew words in Hebrew letters, include "he". - If you want Hebrew words transliterated into English letters, include "en". - If you include both "he" and "en", you will receive both versions back-to-back for each Hebrew word. Transliterated Hebrew words will be surrounded by <i> tags in the text.
    """

    num_speakers: typing.Optional[int] = pydantic.Field(default=None)
    """
    Expected number of speakers in the audio
    """

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