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

import datetime as dt
import typing
import uuid

import pydantic

from ...core.pydantic_utilities import UniversalBaseModel
from .language import Language
from .status import Status
from .transcription_id import TranscriptionId


class TranscriptionInfo(UniversalBaseModel):
    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
    """

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

    created_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
    """
    Date 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[Language]] = pydantic.Field(default=None)
    """
    Language setting for Hebrew words processing (only need to be specified if the primary language is English)
    """

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

    status: typing.Optional[Status] = pydantic.Field(default=None)
    """
    Status of the transcription
    """

    duration: typing.Optional[float] = pydantic.Field(default=None)
    """
    Duration of the transcription
    """

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