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

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata
from .element import Element
from .label_element import LabelElement
from .page_element import PageElement
from .setting_element import SettingElement


class ReceiptContent(UniversalBaseModel):
    """
    Object containing receipt body configuration
    """

    amount: typing.Optional[Element] = pydantic.Field(default=None)
    """
    Section amount of payment receipt
    """

    contact_us: typing_extensions.Annotated[typing.Optional[Element], FieldMetadata(alias="contactUs")] = (
        pydantic.Field(default=None)
    )
    """
    Section contactUs of payment receipt
    """

    details: typing.Optional[Element] = pydantic.Field(default=None)
    """
    Section payment details of payment receipt
    """

    logo: typing.Optional[Element] = pydantic.Field(default=None)
    """
    Section logo of payment receipt
    """

    message_before_button: typing_extensions.Annotated[
        typing.Optional[LabelElement], FieldMetadata(alias="messageBeforeButton")
    ] = pydantic.Field(default=None)
    """
    Section message of payment receipt
    """

    page: typing.Optional[PageElement] = pydantic.Field(default=None)
    """
    Section page of payment receipt
    """

    payment_button: typing_extensions.Annotated[typing.Optional[LabelElement], FieldMetadata(alias="paymentButton")] = (
        pydantic.Field(default=None)
    )
    """
    Section payment button of payment receipt
    """

    payment_information: typing_extensions.Annotated[
        typing.Optional[Element], FieldMetadata(alias="paymentInformation")
    ] = pydantic.Field(default=None)
    """
    Section payment information of payment receipt
    """

    settings: typing.Optional[SettingElement] = pydantic.Field(default=None)
    """
    The receipt's settings.
    """

    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
