import type * as Square from "../index"; /** * Represents a booking as a time-bound service contract for a seller's staff member to provide a specified service * at a given location to a requesting customer in one or more appointment segments. */ export interface Booking { /** A unique ID of this object representing a booking. */ id?: string; /** The revision number for the booking used for optimistic concurrency. */ version?: number; /** * The status of the booking, describing where the booking stands with respect to the booking state machine. * See [BookingStatus](#type-bookingstatus) for possible values */ status?: Square.BookingStatus; /** The RFC 3339 timestamp specifying the creation time of this booking. */ createdAt?: string; /** The RFC 3339 timestamp specifying the most recent update time of this booking. */ updatedAt?: string; /** The RFC 3339 timestamp specifying the starting time of this booking. */ startAt?: string | null; /** The ID of the [Location](entity:Location) object representing the location where the booked service is provided. Once set when the booking is created, its value cannot be changed. */ locationId?: string | null; /** The ID of the [Customer](entity:Customer) object representing the customer receiving the booked service. */ customerId?: string | null; /** The free-text field for the customer to supply notes about the booking. For example, the note can be preferences that cannot be expressed by supported attributes of a relevant [CatalogObject](entity:CatalogObject) instance. */ customerNote?: string | null; /** * The free-text field for the seller to supply notes about the booking. For example, the note can be preferences that cannot be expressed by supported attributes of a specific [CatalogObject](entity:CatalogObject) instance. * This field should not be visible to customers. */ sellerNote?: string | null; /** A list of appointment segments for this booking. */ appointmentSegments?: Square.AppointmentSegment[] | null; /** * Additional time at the end of a booking. * Applications should not make this field visible to customers of a seller. */ transitionTimeMinutes?: number; /** Whether the booking is of a full business day. */ allDay?: boolean; /** * The type of location where the booking is held. * See [BusinessAppointmentSettingsBookingLocationType](#type-businessappointmentsettingsbookinglocationtype) for possible values */ locationType?: Square.BusinessAppointmentSettingsBookingLocationType; /** Information about the booking creator. */ creatorDetails?: Square.BookingCreatorDetails; /** * The source of the booking. * Access to this field requires seller-level permissions. * See [BookingBookingSource](#type-bookingbookingsource) for possible values */ source?: Square.BookingBookingSource; /** Stores a customer address if the location type is `CUSTOMER_LOCATION`. */ address?: Square.Address; }