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

import typing

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


class AirtableDataInput(UniversalBaseModel):
    """
    Complete Airtable sandbox data structure.

    Hierarchy:
    - Bases contain Tables
    - Tables contain Fields (schema) and Records (data)
    - Records contain field values

    Note: For sandbox purposes, we typically work with a single base
    and multiple tables within it.
    """

    tables: typing.Optional[typing.List[AirtableTable]] = pydantic.Field(default=None)
    """
    List of tables (simplified, assumes single base)
    """

    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
