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

from ..core.unchecked_base_model import UncheckedBaseModel
import pydantic
from .data_collection_options_input_type import DataCollectionOptionsInputType
import typing
from .collected_data import CollectedData
from ..core.pydantic_utilities import IS_PYDANTIC_V2


class DataCollectionOptions(UncheckedBaseModel):
    title: str = pydantic.Field()
    """
    The title text to display in the data collection flow on the Terminal.
    """

    body: str = pydantic.Field()
    """
    The body text to display under the title in the data collection screen flow on the
    Terminal.
    """

    input_type: DataCollectionOptionsInputType = pydantic.Field()
    """
    Represents the type of the input text.
    See [InputType](#type-inputtype) for possible values
    """

    collected_data: typing.Optional[CollectedData] = pydantic.Field(default=None)
    """
    The buyer’s input text from the data collection screen.
    """

    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
