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

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


class BookingCreatorDetails(UncheckedBaseModel):
    """
    Information about a booking creator.
    """

    creator_type: typing.Optional[BookingCreatorDetailsCreatorType] = pydantic.Field(default=None)
    """
    The seller-accessible type of the creator of the booking.
    See [BookingCreatorDetailsCreatorType](#type-bookingcreatordetailscreatortype) for possible values
    """

    team_member_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    The ID of the team member who created the booking, when the booking creator is of the `TEAM_MEMBER` type.
    Access to this field requires seller-level permissions.
    """

    customer_id: typing.Optional[str] = pydantic.Field(default=None)
    """
    The ID of the customer who created the booking, when the booking creator is of the `CUSTOMER` type.
    Access to this field requires seller-level permissions.
    """

    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
