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

from ..core.unchecked_base_model import UncheckedBaseModel
import typing
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2


class CardForgottenEventCard(UncheckedBaseModel):
    id: typing.Optional[str] = pydantic.Field(default=None)
    """
    Unique ID for this card. Generated by Square.
    """

    customer_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    The ID of a customer created using the Customers API associated with the card.
    """

    enabled: typing.Optional[bool] = pydantic.Field(default=None)
    """
    Indicates whether or not a card can be used for payments.
    """

    reference_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    An optional user-defined reference ID that associates this card with
    another entity in an external system. For example, a customer ID from an
    external customer management system.
    """

    version: typing.Optional[int] = pydantic.Field(default=None)
    """
    Current version number of the card. Increments with each card update. Requests to update an
    existing Card object will be rejected unless the version in the request matches the current
    version for the Card.
    """

    merchant_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    The ID of the merchant associated with the card.
    """

    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
