# 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 .batch_file_status import BatchFileStatus


class BatchFileSummary(UniversalBaseModel):
    """
    Summary of an uploaded batch manifest.
    """

    id: uuid.UUID = pydantic.Field()
    """
    Batch file ID
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Upload timestamp
    """

    item_count: int = pydantic.Field()
    """
    Number of audio sources
    """

    size_bytes: int = pydantic.Field()
    """
    Manifest size in bytes
    """

    status: BatchFileStatus = pydantic.Field()
    """
    Validation status
    """

    checksum: typing.Optional[str] = pydantic.Field(default=None)
    """
    SHA256 checksum
    """

    title: typing.Optional[str] = pydantic.Field(default=None)
    """
    Title from metadata
    """

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