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

import typing_extensions
import typing_extensions
import typing
from ..types.business_booking_profile_customer_timezone_choice import BusinessBookingProfileCustomerTimezoneChoice
from ..types.business_booking_profile_booking_policy import BusinessBookingProfileBookingPolicy
from .business_appointment_settings import BusinessAppointmentSettingsParams


class BusinessBookingProfileParams(typing_extensions.TypedDict):
    """
    A seller's business booking profile, including booking policy, appointment settings, etc.
    """

    seller_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The ID of the seller, obtainable using the Merchants API.
    """

    created_at: typing_extensions.NotRequired[str]
    """
    The RFC 3339 timestamp specifying the booking's creation time.
    """

    booking_enabled: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    Indicates whether the seller is open for booking.
    """

    customer_timezone_choice: typing_extensions.NotRequired[BusinessBookingProfileCustomerTimezoneChoice]
    """
    The choice of customer's time zone information of a booking.
    The Square online booking site and all notifications to customers uses either the seller location’s time zone
    or the time zone the customer chooses at booking.
    See [BusinessBookingProfileCustomerTimezoneChoice](#type-businessbookingprofilecustomertimezonechoice) for possible values
    """

    booking_policy: typing_extensions.NotRequired[BusinessBookingProfileBookingPolicy]
    """
    The policy for the seller to automatically accept booking requests (`ACCEPT_ALL`) or not (`REQUIRES_ACCEPTANCE`).
    See [BusinessBookingProfileBookingPolicy](#type-businessbookingprofilebookingpolicy) for possible values
    """

    allow_user_cancel: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    Indicates whether customers can cancel or reschedule their own bookings (`true`) or not (`false`).
    """

    business_appointment_settings: typing_extensions.NotRequired[BusinessAppointmentSettingsParams]
    """
    Settings for appointment-type bookings.
    """

    support_seller_level_writes: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    Indicates whether the seller's subscription to Square Appointments supports creating, updating or canceling an appointment through the API (`true`) or not (`false`) using seller permission.
    """
