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

import typing
import uuid

import pydantic

from ...core.pydantic_utilities import UniversalBaseModel
from .batch_status import BatchStatus
from .transcription_info import TranscriptionInfo


class BatchStatusResponse(UniversalBaseModel):
    """
    Detailed progress of a batch transcription.
    """

    batch_id: uuid.UUID = pydantic.Field()
    """
    ID of this batch
    """

    status: BatchStatus = pydantic.Field()
    """
    Overall batch status
    """

    total_count: int = pydantic.Field()
    """
    Total transcriptions in batch
    """

    completed_count: int = pydantic.Field()
    """
    Successfully completed
    """

    failed_count: int = pydantic.Field()
    """
    Failed transcriptions
    """

    pending_count: int = pydantic.Field()
    """
    Still processing or queued
    """

    transcriptions: typing.List[TranscriptionInfo] = pydantic.Field()
    """
    Status details for each transcription in the batch
    """

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