@wix/bookings 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/build/cjs/index.d.ts +4 -1
  2. package/build/cjs/index.js +5 -2
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/cjs/src/bookings-availability-v1-slot-availability.http.d.ts +6 -6
  5. package/build/cjs/src/bookings-availability-v1-slot-availability.http.js +6 -6
  6. package/build/cjs/src/bookings-availability-v1-slot-availability.universal.d.ts +14 -29
  7. package/build/cjs/src/bookings-availability-v1-slot-availability.universal.js +7 -6
  8. package/build/cjs/src/bookings-availability-v1-slot-availability.universal.js.map +1 -1
  9. package/build/cjs/src/bookings-reader-v2-extended-booking.http.d.ts +38 -0
  10. package/build/cjs/src/bookings-reader-v2-extended-booking.http.js +117 -0
  11. package/build/cjs/src/bookings-reader-v2-extended-booking.http.js.map +1 -0
  12. package/build/cjs/src/bookings-reader-v2-extended-booking.public.d.ts +5 -0
  13. package/build/cjs/src/bookings-reader-v2-extended-booking.public.js +22 -0
  14. package/build/cjs/src/bookings-reader-v2-extended-booking.public.js.map +1 -0
  15. package/build/cjs/src/bookings-reader-v2-extended-booking.types.d.ts +730 -0
  16. package/build/cjs/src/bookings-reader-v2-extended-booking.types.js +90 -0
  17. package/build/cjs/src/bookings-reader-v2-extended-booking.types.js.map +1 -0
  18. package/build/cjs/src/bookings-reader-v2-extended-booking.universal.d.ts +786 -0
  19. package/build/cjs/src/bookings-reader-v2-extended-booking.universal.js +226 -0
  20. package/build/cjs/src/bookings-reader-v2-extended-booking.universal.js.map +1 -0
  21. package/build/cjs/src/bookings-v2-booking.http.d.ts +123 -0
  22. package/build/cjs/src/bookings-v2-booking.http.js +305 -0
  23. package/build/cjs/src/bookings-v2-booking.http.js.map +1 -0
  24. package/build/cjs/src/bookings-v2-booking.public.d.ts +9 -0
  25. package/build/cjs/src/bookings-v2-booking.public.js +47 -0
  26. package/build/cjs/src/bookings-v2-booking.public.js.map +1 -0
  27. package/build/cjs/src/bookings-v2-booking.types.d.ts +1594 -0
  28. package/build/cjs/src/bookings-v2-booking.types.js +99 -0
  29. package/build/cjs/src/bookings-v2-booking.types.js.map +1 -0
  30. package/build/cjs/src/bookings-v2-booking.universal.d.ts +1840 -0
  31. package/build/cjs/src/bookings-v2-booking.universal.js +561 -0
  32. package/build/cjs/src/bookings-v2-booking.universal.js.map +1 -0
  33. package/build/cjs/src/bookings-v2-price-info.http.d.ts +56 -0
  34. package/build/cjs/src/bookings-v2-price-info.http.js +164 -0
  35. package/build/cjs/src/bookings-v2-price-info.http.js.map +1 -0
  36. package/build/cjs/src/bookings-v2-price-info.public.d.ts +6 -0
  37. package/build/cjs/src/bookings-v2-price-info.public.js +26 -0
  38. package/build/cjs/src/bookings-v2-price-info.public.js.map +1 -0
  39. package/build/cjs/src/bookings-v2-price-info.types.d.ts +594 -0
  40. package/build/cjs/src/bookings-v2-price-info.types.js +79 -0
  41. package/build/cjs/src/bookings-v2-price-info.types.js.map +1 -0
  42. package/build/cjs/src/bookings-v2-price-info.universal.d.ts +664 -0
  43. package/build/cjs/src/bookings-v2-price-info.universal.js +274 -0
  44. package/build/cjs/src/bookings-v2-price-info.universal.js.map +1 -0
  45. package/build/es/index.d.ts +4 -1
  46. package/build/es/index.js +4 -1
  47. package/build/es/index.js.map +1 -1
  48. package/build/es/src/bookings-availability-v1-slot-availability.http.d.ts +6 -6
  49. package/build/es/src/bookings-availability-v1-slot-availability.http.js +6 -6
  50. package/build/es/src/bookings-availability-v1-slot-availability.universal.d.ts +14 -29
  51. package/build/es/src/bookings-availability-v1-slot-availability.universal.js +7 -6
  52. package/build/es/src/bookings-availability-v1-slot-availability.universal.js.map +1 -1
  53. package/build/es/src/bookings-reader-v2-extended-booking.http.d.ts +38 -0
  54. package/build/es/src/bookings-reader-v2-extended-booking.http.js +113 -0
  55. package/build/es/src/bookings-reader-v2-extended-booking.http.js.map +1 -0
  56. package/build/es/src/bookings-reader-v2-extended-booking.public.d.ts +5 -0
  57. package/build/es/src/bookings-reader-v2-extended-booking.public.js +8 -0
  58. package/build/es/src/bookings-reader-v2-extended-booking.public.js.map +1 -0
  59. package/build/es/src/bookings-reader-v2-extended-booking.types.d.ts +730 -0
  60. package/build/es/src/bookings-reader-v2-extended-booking.types.js +87 -0
  61. package/build/es/src/bookings-reader-v2-extended-booking.types.js.map +1 -0
  62. package/build/es/src/bookings-reader-v2-extended-booking.universal.d.ts +786 -0
  63. package/build/es/src/bookings-reader-v2-extended-booking.universal.js +203 -0
  64. package/build/es/src/bookings-reader-v2-extended-booking.universal.js.map +1 -0
  65. package/build/es/src/bookings-v2-booking.http.d.ts +123 -0
  66. package/build/es/src/bookings-v2-booking.http.js +297 -0
  67. package/build/es/src/bookings-v2-booking.http.js.map +1 -0
  68. package/build/es/src/bookings-v2-booking.public.d.ts +9 -0
  69. package/build/es/src/bookings-v2-booking.public.js +28 -0
  70. package/build/es/src/bookings-v2-booking.public.js.map +1 -0
  71. package/build/es/src/bookings-v2-booking.types.d.ts +1594 -0
  72. package/build/es/src/bookings-v2-booking.types.js +96 -0
  73. package/build/es/src/bookings-v2-booking.types.js.map +1 -0
  74. package/build/es/src/bookings-v2-booking.universal.d.ts +1840 -0
  75. package/build/es/src/bookings-v2-booking.universal.js +534 -0
  76. package/build/es/src/bookings-v2-booking.universal.js.map +1 -0
  77. package/build/es/src/bookings-v2-price-info.http.d.ts +56 -0
  78. package/build/es/src/bookings-v2-price-info.http.js +159 -0
  79. package/build/es/src/bookings-v2-price-info.http.js.map +1 -0
  80. package/build/es/src/bookings-v2-price-info.public.d.ts +6 -0
  81. package/build/es/src/bookings-v2-price-info.public.js +13 -0
  82. package/build/es/src/bookings-v2-price-info.public.js.map +1 -0
  83. package/build/es/src/bookings-v2-price-info.types.d.ts +594 -0
  84. package/build/es/src/bookings-v2-price-info.types.js +76 -0
  85. package/build/es/src/bookings-v2-price-info.types.js.map +1 -0
  86. package/build/es/src/bookings-v2-price-info.universal.d.ts +664 -0
  87. package/build/es/src/bookings-v2-price-info.universal.js +250 -0
  88. package/build/es/src/bookings-v2-price-info.universal.js.map +1 -0
  89. package/package.json +2 -2
@@ -0,0 +1,1594 @@
1
+ /** The booking object, version 2. */
2
+ export interface Booking extends BookingParticipantsInfoOneOf {
3
+ /**
4
+ * Booking ID.
5
+ * @readonly
6
+ */
7
+ id?: string | null;
8
+ /** An object describing the slot or schedule that was booked. */
9
+ bookedEntity?: BookedEntity;
10
+ /** Contact details of the site visitor or member making the booking. */
11
+ contactDetails?: ContactDetails;
12
+ /** Additional custom fields submitted with the booking form. */
13
+ additionalFields?: CustomFormField[];
14
+ /**
15
+ * Booking status.
16
+ * One of:
17
+ * - `"CREATED"` - The booking was created.
18
+ * - `"UPDATED"` - The booking was updated.
19
+ * - `"CONFIRMED"` - The booking has been confirmed and appears on the bookings calendar.
20
+ * Booking can be manually confirmed using the Set As Confirmed endpoint.
21
+ * Booking can be automatically confirmed when the following requirements are met:
22
+ * + The service is configured as automatically confirmed.
23
+ * + Invoking eCommerce checkout API and an order has been created.
24
+ * - `"CANCELED"` - The booking has been canceled and synced to bookings calendar.
25
+ * The booking can be canceled using cancel API.
26
+ * - `"PENDING"` - The booking waiting to be confirmed or declined buy the owner and is synced to bookings calendar.
27
+ * Bookings can be manually set as pending using setAsPending API, requires manage booking status permissions.
28
+ * Booking can be automatically set as pending when the following requirements are met:
29
+ * + The Service is configured as manually confirmed.
30
+ * + Invoking the eCommerce checkout API and an order has been created.
31
+ * - `"WAITING_LIST"` - The booking is pending on a waiting list.
32
+ * Booking can be created with this status when invoking waiting list join API.
33
+ * - `"DECLINED"` - The booking was declined by the owner and synced to bookings calendar.
34
+ * Booking can be manually declined using decline API and requires manage booking permissions.
35
+ * Booking can be automatically declined when the following requirements are met:
36
+ * + Invoking eCommerce checkout API and the order declined event has been sent.
37
+ * + Invoking eCommerce checkout API and order approved event has been sent, but the booking is offline and the booking causes a double booking.
38
+ */
39
+ status?: BookingStatus;
40
+ /**
41
+ * Payment status.
42
+ * One of:
43
+ * - `"NOT_PAID"` The booking is not paid for.
44
+ * - `"PAID"` The booking is fully paid.
45
+ * - `"PARTIALLY_PAID"` The booking is partially paid.
46
+ * - `"REFUNDED"` The booking is refunded.
47
+ * @readonly
48
+ */
49
+ paymentStatus?: PaymentStatus;
50
+ /**
51
+ * Selected payment option.
52
+ * One of the payment options offered by the service, or another option if `skipSelectedPaymentOptionValidation` is `true`.
53
+ * When undefined, the payment option is resolved by the service configuration on checkout.
54
+ */
55
+ selectedPaymentOption?: SelectedPaymentOption;
56
+ /**
57
+ * Date and time the booking was created.
58
+ * @readonly
59
+ */
60
+ createdDate?: Date;
61
+ /** External ID provided by the client app on creation. */
62
+ externalUserId?: string | null;
63
+ /** Revision number to be used when updating, rescheduling, or cancelling the booking. The revision number is automatically incremented when the booing is updated. */
64
+ revision?: string | null;
65
+ /**
66
+ * ID of the creator of the Booking
67
+ * If `appId` and another ID are present, the other ID takes precedence.
68
+ * @readonly
69
+ */
70
+ createdBy?: CommonIdentificationData;
71
+ /**
72
+ * The start date of this booking. For a slot, this is the start date of the slot. For a schedule, the start date of the first session.
73
+ * @readonly
74
+ */
75
+ startDate?: Date;
76
+ /**
77
+ * The end date of this booking. For a slot, this is the end date of the slot. For a schedule, the end date of the last session.
78
+ * @readonly
79
+ */
80
+ endDate?: Date;
81
+ /**
82
+ * Date and time the booking was updated.
83
+ * @readonly
84
+ */
85
+ updatedDate?: Date;
86
+ /**
87
+ * Additional custom fields. This includes fields managed by Wix, by 3rd-party apps, and by the site.
88
+ *
89
+ * Empty fields are not returned.
90
+ */
91
+ extendedFields?: ExtendedFields;
92
+ /**
93
+ * Indicating if this booking overlaps another existing confirmed booking
94
+ * @readonly
95
+ */
96
+ doubleBooked?: boolean | null;
97
+ /** Total number of participants. Available only when the booking includes a single service variant. */
98
+ totalParticipants?: number;
99
+ /**
100
+ * Information about the booked service choices and participants.
101
+ * Available only when the booking includes multiple service variants.
102
+ */
103
+ participantsChoices?: ParticipantChoices;
104
+ }
105
+ /** @oneof */
106
+ export interface BookingParticipantsInfoOneOf {
107
+ /** Total number of participants. Available only when the booking includes a single service variant. */
108
+ totalParticipants?: number;
109
+ /**
110
+ * Information about the booked service choices and participants.
111
+ * Available only when the booking includes multiple service variants.
112
+ */
113
+ participantsChoices?: ParticipantChoices;
114
+ }
115
+ export interface BookedEntity extends BookedEntityItemOneOf {
116
+ /** Session title at the time of booking. */
117
+ title?: string | null;
118
+ /**
119
+ * List of tags for the booking.
120
+ * System-assigned tags for sessions and schedules are:
121
+ * + "INDIVIDUAL" Appointments, including appointments with more than 1 participant.
122
+ * + "GROUP" Individual classes.
123
+ * + "COURSE" Courses.
124
+ */
125
+ tags?: string[] | null;
126
+ /** The booked slot, which once booked becomes a session. The booking is automatically assigned to the session if given, or a session is be created if one doesn't already exist. */
127
+ slot?: BookedSlot;
128
+ /** The booked schedule. The booking is automatically assigned to the schedule's sessions. */
129
+ schedule?: BookedSchedule;
130
+ }
131
+ /** @oneof */
132
+ export interface BookedEntityItemOneOf {
133
+ /** The booked slot, which once booked becomes a session. The booking is automatically assigned to the session if given, or a session is be created if one doesn't already exist. */
134
+ slot?: BookedSlot;
135
+ /** The booked schedule. The booking is automatically assigned to the schedule's sessions. */
136
+ schedule?: BookedSchedule;
137
+ }
138
+ export interface BookedSlot {
139
+ /**
140
+ * ID of the underlying session when session is a single session or generated from a recurring session.
141
+ * If `sessionId` is defined in the Create Booking request, the `startDate`, `endDate`, timezone, resource, and location fields from the request are ignored and populated from the session's information.
142
+ */
143
+ sessionId?: string | null;
144
+ /** Service ID. */
145
+ serviceId?: string;
146
+ /** Schedule ID. Required. */
147
+ scheduleId?: string;
148
+ /**
149
+ * The start time of this slot in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)
150
+ * format. Required.
151
+ */
152
+ startDate?: string | null;
153
+ /**
154
+ * The end time of this slot in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)
155
+ * format. Required.
156
+ */
157
+ endDate?: string | null;
158
+ /** The timezone according to which the slot was shown to the user when booking, and should be shown in future. */
159
+ timezone?: string | null;
160
+ /** The resource used on the slot. */
161
+ resource?: BookedResource;
162
+ /** Location where the slot's session takes place. */
163
+ location?: Location;
164
+ }
165
+ export interface BookedResource {
166
+ /** Booked resource ID. */
167
+ id?: string;
168
+ /** Resource's name at the time of booking. */
169
+ name?: string | null;
170
+ /** Resource's email at the time of booking. */
171
+ email?: string | null;
172
+ /** Resources schedule ID. */
173
+ scheduleId?: string | null;
174
+ }
175
+ export interface Location {
176
+ /**
177
+ * Business location ID. Available only for locations that are business locations,
178
+ * meaning the `location_type` is `"OWNER_BUSINESS"`.
179
+ */
180
+ id?: string | null;
181
+ /** Location name. */
182
+ name?: string | null;
183
+ /** The full address of this location. */
184
+ formattedAddress?: string | null;
185
+ /**
186
+ * Location type.
187
+ *
188
+ * - `"OWNER_BUSINESS"`: The business address, as set in the site’s general settings.
189
+ * - `"OWNER_CUSTOM"`: The address as set when creating the service.
190
+ * - `"CUSTOM"`: The address as set for the individual session.
191
+ */
192
+ locationType?: LocationType;
193
+ }
194
+ export declare enum LocationType {
195
+ UNDEFINED = "UNDEFINED",
196
+ OWNER_BUSINESS = "OWNER_BUSINESS",
197
+ OWNER_CUSTOM = "OWNER_CUSTOM",
198
+ CUSTOM = "CUSTOM"
199
+ }
200
+ export interface BookedSchedule {
201
+ /** Schedule ID. */
202
+ scheduleId?: string;
203
+ /** ID of the booked service. */
204
+ serviceId?: string | null;
205
+ /**
206
+ * Location where the schedule's sessions take place. Read only.
207
+ * @readonly
208
+ */
209
+ location?: Location;
210
+ /** The timezone according to which the slot was shown to the user when booking, and should be shown in future. */
211
+ timezone?: string | null;
212
+ /**
213
+ * The start time of the first session in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)
214
+ * format. Required.
215
+ * @readonly
216
+ */
217
+ firstSessionStart?: string | null;
218
+ /**
219
+ * The end time of the last session in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)
220
+ * format. Required.
221
+ * @readonly
222
+ */
223
+ lastSessionEnd?: string | null;
224
+ }
225
+ export interface ContactDetails {
226
+ /** Contact's ID. */
227
+ contactId?: string | null;
228
+ /** Contact's first name. When populated from a standard booking form, this property corresponds to the **Name** field. */
229
+ firstName?: string | null;
230
+ /** Contact's last name. */
231
+ lastName?: string | null;
232
+ /** Contact's email, used to create a new contact or get existing one from the [Contacts API](https://dev.wix.com/api/rest/contacts/contacts). Used to validate coupon usage limitations per contact. If not passed, the coupon usage limitation will not be enforced. (Coupon usage limitation validation is not supported yet). */
233
+ email?: string | null;
234
+ /** Contact's phone number. */
235
+ phone?: string | null;
236
+ /** Contact's full address. */
237
+ fullAddress?: Address;
238
+ /** Contact's time zone. */
239
+ timeZone?: string | null;
240
+ /** Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. */
241
+ countryCode?: string | null;
242
+ }
243
+ /** Physical address */
244
+ export interface Address extends AddressStreetOneOf {
245
+ /** Country code. */
246
+ country?: string | null;
247
+ /** Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */
248
+ subdivision?: string | null;
249
+ /** City name. */
250
+ city?: string | null;
251
+ /** Zip/postal code. */
252
+ postalCode?: string | null;
253
+ /** Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. */
254
+ addressLine2?: string | null;
255
+ /** A string containing the full address of this location. */
256
+ formattedAddress?: string | null;
257
+ /** Free text to help find the address. */
258
+ hint?: string | null;
259
+ /** Coordinates of the physical address. */
260
+ geocode?: AddressLocation;
261
+ /** Country full name. */
262
+ countryFullname?: string | null;
263
+ /** Multi-level subdivisions from top to bottom. */
264
+ subdivisions?: Subdivision[];
265
+ /** Street name, number and apartment number. */
266
+ streetAddress?: StreetAddress;
267
+ /** Main address line, usually street and number, as free text. */
268
+ addressLine?: string | null;
269
+ }
270
+ /** @oneof */
271
+ export interface AddressStreetOneOf {
272
+ /** Street name, number and apartment number. */
273
+ streetAddress?: StreetAddress;
274
+ /** Main address line, usually street and number, as free text. */
275
+ addressLine?: string | null;
276
+ }
277
+ export interface StreetAddress {
278
+ /** Street number. */
279
+ number?: string;
280
+ /** Street name. */
281
+ name?: string;
282
+ /** Apartment number. */
283
+ apt?: string;
284
+ }
285
+ export interface AddressLocation {
286
+ /** Address latitude. */
287
+ latitude?: number | null;
288
+ /** Address longitude. */
289
+ longitude?: number | null;
290
+ }
291
+ export interface Subdivision {
292
+ /** Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). */
293
+ code?: string;
294
+ /** Subdivision full name. */
295
+ name?: string;
296
+ }
297
+ export interface CustomFormField {
298
+ /** ID of the form field as defined in the form. */
299
+ id?: string;
300
+ /** Value that was submitted for this field. */
301
+ value?: string | null;
302
+ /**
303
+ * Form field's label at the time of submission.
304
+ * @readonly
305
+ */
306
+ label?: string | null;
307
+ /**
308
+ * <!--ONLY:VELO
309
+ * One of:
310
+ * - `"SHORT_TEXT"`
311
+ * - `"LONG_TEXT"`
312
+ * - `"CHECK_BOX"`
313
+ * <!--END:ONLY:VELO-->
314
+ */
315
+ valueType?: ValueType;
316
+ }
317
+ export declare enum ValueType {
318
+ /** Short text. This is the default value type. */
319
+ SHORT_TEXT = "SHORT_TEXT",
320
+ /** Long text */
321
+ LONG_TEXT = "LONG_TEXT",
322
+ /** a text that represent the check box value: if selected the value is "true", otherwise "false". */
323
+ CHECK_BOX = "CHECK_BOX"
324
+ }
325
+ /** Booking status. */
326
+ export declare enum BookingStatus {
327
+ CREATED = "CREATED",
328
+ CONFIRMED = "CONFIRMED",
329
+ CANCELED = "CANCELED",
330
+ PENDING = "PENDING",
331
+ DECLINED = "DECLINED",
332
+ WAITING_LIST = "WAITING_LIST"
333
+ }
334
+ /**
335
+ * Payment status.
336
+ * Automatically updated when using eCom checkout APIs.
337
+ */
338
+ export declare enum PaymentStatus {
339
+ UNDEFINED = "UNDEFINED",
340
+ NOT_PAID = "NOT_PAID",
341
+ PAID = "PAID",
342
+ /** not supported yet. */
343
+ PARTIALLY_PAID = "PARTIALLY_PAID",
344
+ /** not supported yet */
345
+ REFUNDED = "REFUNDED"
346
+ }
347
+ /**
348
+ * The selected payment option.
349
+ * One of the payment options offered by the service.
350
+ * This field is be set when the user selects an option during booking.
351
+ * If left undefined, the payment option is resolved by the service configuration on checkout.
352
+ */
353
+ export declare enum SelectedPaymentOption {
354
+ UNDEFINED = "UNDEFINED",
355
+ OFFLINE = "OFFLINE",
356
+ ONLINE = "ONLINE",
357
+ MEMBERSHIP = "MEMBERSHIP",
358
+ /** Payment can only be done using a membership and must be manually redeemed in the dashboard by the site owner. */
359
+ MEMBERSHIP_OFFLINE = "MEMBERSHIP_OFFLINE"
360
+ }
361
+ export interface BookingSource {
362
+ /**
363
+ * Platform from which a booking was created
364
+ * <!--ONLY:VELO
365
+ * One of:
366
+ * - `"WEB"` Desktop browser.
367
+ * - `"MOBILE_APP"` Mobile application.
368
+ * <!--END:ONLY:VELO-->
369
+ */
370
+ platform?: Platform;
371
+ /**
372
+ * Actor that created this booking.
373
+ * <!--ONLY:VELO
374
+ * One of:
375
+ * - `"BUSINESS"`
376
+ * - `"CUSTOMER"`
377
+ * <!--END:ONLY:VELO-->
378
+ */
379
+ actor?: Actor;
380
+ /**
381
+ * Wix site ID of the application that created the booking.
382
+ * @readonly
383
+ */
384
+ appDefId?: string | null;
385
+ /**
386
+ * Name of the application that created the booking, as saved in Wix Developers Center at the time of booking.
387
+ * @readonly
388
+ */
389
+ appName?: string | null;
390
+ }
391
+ export declare enum Platform {
392
+ UNDEFINED_PLATFORM = "UNDEFINED_PLATFORM",
393
+ WEB = "WEB",
394
+ MOBILE_APP = "MOBILE_APP"
395
+ }
396
+ export declare enum Actor {
397
+ UNDEFINED_ACTOR = "UNDEFINED_ACTOR",
398
+ BUSINESS = "BUSINESS",
399
+ CUSTOMER = "CUSTOMER"
400
+ }
401
+ export interface ParticipantNotification {
402
+ /**
403
+ * Whether to send the message about the changes to the customer.
404
+ *
405
+ * Default: `false`
406
+ */
407
+ notifyParticipants?: boolean;
408
+ /** Custom message to send to the participants about the changes to the booking. */
409
+ message?: string | null;
410
+ }
411
+ export interface CommonIdentificationData extends CommonIdentificationDataIdOneOf {
412
+ /**
413
+ * ID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system.
414
+ * @readonly
415
+ */
416
+ contactId?: string | null;
417
+ /** ID of a site visitor that has not logged in to the site. */
418
+ anonymousVisitorId?: string;
419
+ /** ID of a site visitor that has logged in to the site. */
420
+ memberId?: string;
421
+ /** ID of a Wix user (site owner, contributor, etc.). */
422
+ wixUserId?: string;
423
+ /** ID of an app. */
424
+ appId?: string;
425
+ }
426
+ /** @oneof */
427
+ export interface CommonIdentificationDataIdOneOf {
428
+ /** ID of a site visitor that has not logged in to the site. */
429
+ anonymousVisitorId?: string;
430
+ /** ID of a site visitor that has logged in to the site. */
431
+ memberId?: string;
432
+ /** ID of a Wix user (site owner, contributor, etc.). */
433
+ wixUserId?: string;
434
+ /** ID of an app. */
435
+ appId?: string;
436
+ }
437
+ export declare enum IdentificationDataIdentityType {
438
+ UNKNOWN = "UNKNOWN",
439
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
440
+ MEMBER = "MEMBER",
441
+ WIX_USER = "WIX_USER",
442
+ APP = "APP"
443
+ }
444
+ export interface FlowControlSettings {
445
+ /**
446
+ * When true, skips availability checking and allows booking.
447
+ * Requires BOOKINGS.OVERRIDE_AVAILABILITY permissions.
448
+ */
449
+ skipAvailabilityValidation?: boolean;
450
+ /**
451
+ * When true, allows booking a confirmation-required service without requiring confirmation.
452
+ * Requires BOOKINGS.IGNORE_BOOKING_POLICY permissions.
453
+ */
454
+ skipBusinessConfirmation?: boolean;
455
+ /**
456
+ * When true, skips selected payment option checking as defined in `selectedPaymentOption` field
457
+ * and allows booking.
458
+ * Requires BOOKINGS.MANAGE_PAYMENTS permissions.
459
+ */
460
+ skipSelectedPaymentOptionValidation?: boolean;
461
+ /** When true, refunds the booking's payment when the booking is canceled. */
462
+ withRefund?: boolean | null;
463
+ }
464
+ export interface ExtendedFields {
465
+ /**
466
+ * Data Extensions extended fields
467
+ * Key: Namespace
468
+ * Value: extended fields data in Struct format
469
+ */
470
+ namespaces?: Record<string, Record<string, any>>;
471
+ }
472
+ export interface ParticipantChoices {
473
+ /** Information about the booked service choices. Includes the number of participants. */
474
+ serviceChoices?: ServiceChoices[];
475
+ }
476
+ export interface ServiceChoices {
477
+ /** Number of participants for this variant. */
478
+ numberOfParticipants?: number | null;
479
+ /** Service choices for these participants. */
480
+ choices?: ServiceChoice[];
481
+ }
482
+ export interface ServiceChoice extends ServiceChoiceChoiceOneOf {
483
+ /**
484
+ * ID of the corresponding option for the choice. For example, the choice `child`
485
+ * could correspond to the option `ageGroup`. In this case, `optionId` is the ID
486
+ * for the `ageGroup` option.
487
+ */
488
+ optionId?: string;
489
+ /**
490
+ * Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.
491
+ * Choices are specific values for an option the customer can choose to book. For example,
492
+ * the option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.
493
+ * Each choice may have a different price.
494
+ */
495
+ custom?: string;
496
+ }
497
+ /** @oneof */
498
+ export interface ServiceChoiceChoiceOneOf {
499
+ /**
500
+ * Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.
501
+ * Choices are specific values for an option the customer can choose to book. For example,
502
+ * the option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.
503
+ * Each choice may have a different price.
504
+ */
505
+ custom?: string;
506
+ }
507
+ export interface BookingChanged {
508
+ /** The booking before the changes. */
509
+ previousBooking?: Booking;
510
+ /** The booking after the changes. */
511
+ currentBooking?: Booking;
512
+ }
513
+ export interface CreateBookingRequest {
514
+ /** The booking to create. */
515
+ booking?: Booking;
516
+ /** Information about a message to send to the customer. */
517
+ participantNotification?: ParticipantNotification;
518
+ /**
519
+ * Whether to send an SMS reminder to the customer 24 hours before the
520
+ * session starts. The phone number is taken from `contactDetails.phone`.
521
+ * Default: `true`.
522
+ */
523
+ sendSmsReminder?: boolean | null;
524
+ /**
525
+ * Information about whether specific procedures of the standard Wix Bookings
526
+ * creation flow are changed. For example, whether the availability is
527
+ * checked before creating the booking or if additional payment options are
528
+ * accepted.
529
+ */
530
+ flowControlSettings?: CreateBookingFlowControlSettings;
531
+ }
532
+ export interface CreateBookingFlowControlSettings {
533
+ /**
534
+ * Whether the availability is checked before creating the booking. When
535
+ * passing `false` a booking is only created when the slot or schedule is
536
+ * available. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
537
+ * permission scope when passing `true`.
538
+ * Default: `false`.
539
+ */
540
+ skipAvailabilityValidation?: boolean;
541
+ /**
542
+ * Whether `PENDING` bookings are automatically set to `CONFIRMED` for
543
+ * services that normally require the owner's manual confirmation. Your
544
+ * app must have the `BOOKINGS.OVERRIDE_AVAILABILITY` permission scope
545
+ * when passing `true`.
546
+ * Default: `false`.
547
+ */
548
+ skipBusinessConfirmation?: boolean;
549
+ /**
550
+ * Whether customers can pay using a payment method that isn't supported
551
+ * for the service, but that's supported for other services. Your app
552
+ * must have the `BOOKINGS.MANAGE_PAYMENTS` permission scope when passing
553
+ * `true`.
554
+ * Default: `false`.
555
+ */
556
+ skipSelectedPaymentOptionValidation?: boolean;
557
+ }
558
+ export interface CreateBookingResponse {
559
+ /** Created booking. */
560
+ booking?: Booking;
561
+ }
562
+ /**
563
+ * The fieldMask should not include both the "numberOfParticipants" and "participantsInfo" paths, doing so will result
564
+ * in an error. "participantsInfo" should be preferred over "numberOfParticipants"
565
+ */
566
+ export interface UpdateBookingRequest {
567
+ booking?: Booking;
568
+ mask?: string[];
569
+ }
570
+ export interface UpdateBookingResponse {
571
+ booking?: Booking;
572
+ }
573
+ export interface LegacyCreateBookingRequest {
574
+ booking?: Booking;
575
+ }
576
+ export interface LegacyCreateBookingResponse {
577
+ booking?: Booking;
578
+ }
579
+ /**
580
+ * The fieldMask for each booking should not include both the "numberOfParticipants" and "participantsInfo" paths, doing so will result
581
+ * in an error. "participantsInfo" should be preferred over "numberOfParticipants"
582
+ */
583
+ export interface BulkUpdateBookingRequest {
584
+ bookings?: MaskedBooking[];
585
+ }
586
+ export interface MaskedBooking {
587
+ booking?: Booking;
588
+ mask?: string[];
589
+ }
590
+ export interface BulkUpdateBookingResponse {
591
+ results?: ItemMetadata[];
592
+ bulkActionMetadata?: BulkActionMetadata;
593
+ }
594
+ export interface ItemMetadata {
595
+ /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
596
+ id?: string | null;
597
+ /** Index of the item within the request array. Allows for correlation between request and response items. */
598
+ originalIndex?: number;
599
+ /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
600
+ success?: boolean;
601
+ /** Details about the error in case of failure. */
602
+ error?: ApplicationError;
603
+ }
604
+ export interface ApplicationError {
605
+ /** Error code. */
606
+ code?: string;
607
+ /** Description of the error. */
608
+ description?: string;
609
+ /** Data related to the error. */
610
+ data?: Record<string, any> | null;
611
+ }
612
+ export interface BulkActionMetadata {
613
+ /** Number of items that were successfully processed. */
614
+ totalSuccesses?: number;
615
+ /** Number of items that couldn't be processed. */
616
+ totalFailures?: number;
617
+ /** Number of failures without details because detailed failure threshold was exceeded. */
618
+ undetailedFailures?: number;
619
+ }
620
+ export interface BulkCreateBookingRequest {
621
+ /**
622
+ * Bookings to create.
623
+ * Max: 8 bookings.
624
+ */
625
+ createBookingsInfo?: CreateBookingInfo[];
626
+ /** Whether to return the created bookings entities. */
627
+ returnFullEntity?: boolean;
628
+ }
629
+ export interface CreateBookingInfo {
630
+ /** The booking to create */
631
+ booking?: Booking;
632
+ /** Information about a message to send to the customer. */
633
+ participantNotification?: ParticipantNotification;
634
+ /**
635
+ * Whether to send an SMS reminder to the customer 24 hours before the
636
+ * session starts. The phone number is taken from `contactDetails.phone`.
637
+ * Default: `true`.
638
+ */
639
+ sendSmsReminder?: boolean | null;
640
+ /**
641
+ * Information about whether specific procedures of the standard Wix Bookings
642
+ * creation flow are changed. For example, whether the availability is
643
+ * checked before creating the booking or if additional payment options are
644
+ * accepted.
645
+ */
646
+ flowControlSettings?: CreateBookingFlowControlSettings;
647
+ }
648
+ export interface BulkCreateBookingResponse {
649
+ /**
650
+ * Bulk create booking results.
651
+ * For each booking includes whether its creation succeeded along with proper error if such occurred, and the created booking entity if `returnFullEntity` was passed as true.
652
+ */
653
+ results?: BulkBookingResult[];
654
+ /** Total successes and failures of the bulk create booking action. */
655
+ bulkActionMetadata?: BulkActionMetadata;
656
+ }
657
+ export interface BulkBookingResult {
658
+ itemMetadata?: ItemMetadata;
659
+ item?: Booking;
660
+ }
661
+ export interface RescheduleBookingRequest extends RescheduleBookingRequestParticipantsInfoOneOf {
662
+ /** Id of the booking to reschedule. */
663
+ bookingId: string;
664
+ /** Information about the new slot. */
665
+ slot: V2Slot;
666
+ /**
667
+ * Revision number, which increments by 1 each time the booking is updated.
668
+ * To prevent conflicting changes, the current revision must be passed when
669
+ * managing the booking.
670
+ */
671
+ revision: string | null;
672
+ /**
673
+ * Information about whether to notify the customer about the rescheduling and
674
+ * the message to send.
675
+ */
676
+ participantNotification?: ParticipantNotification;
677
+ /**
678
+ * Information about whether specific procedures of the standard Wix Bookings
679
+ * rescheduling flow are changed. For example, whether the availability of
680
+ * the new slot is checked before rescheduling the booking or if you can
681
+ * reschedule the booking even though the rescheduling policy doesn't allow it.
682
+ */
683
+ flowControlSettings?: RescheduleBookingRequestFlowControlSettings;
684
+ /**
685
+ * Total number of participants. Available only for services with
686
+ * variants.
687
+ * Pass when all participants book the same variant.
688
+ */
689
+ totalParticipants?: number;
690
+ /**
691
+ * Information about the service choices to book. Available only for services with
692
+ * variants.
693
+ * Pass when not all participants book the same variant.
694
+ */
695
+ participantsChoices?: ParticipantChoices;
696
+ }
697
+ /** @oneof */
698
+ export interface RescheduleBookingRequestParticipantsInfoOneOf {
699
+ /**
700
+ * Total number of participants. Available only for services with
701
+ * variants.
702
+ * Pass when all participants book the same variant.
703
+ */
704
+ totalParticipants?: number;
705
+ /**
706
+ * Information about the service choices to book. Available only for services with
707
+ * variants.
708
+ * Pass when not all participants book the same variant.
709
+ */
710
+ participantsChoices?: ParticipantChoices;
711
+ }
712
+ export interface V2Slot {
713
+ /** Identifier for underlying session when session is a single session or generated from a recurring session. Required. */
714
+ sessionId?: string | null;
715
+ /** Service identifier. Required. */
716
+ serviceId?: string;
717
+ /** Schedule identifier. Required. */
718
+ scheduleId?: string;
719
+ /** The start time of this Slot (formatted according to RFC3339). Required. */
720
+ startDate?: string | null;
721
+ /** The end time of this Slot (formatted according to RFC3339). Required. */
722
+ endDate?: string | null;
723
+ /** The timezone according to which the slot is calculated presented. */
724
+ timezone?: string | null;
725
+ /** The resource required for this slot. Currently, in Bookings, this is the relevant staff. Required. */
726
+ resource?: SlotSlotResource;
727
+ /** Geographic location of the slot. */
728
+ location?: SlotLocation;
729
+ }
730
+ export declare enum LocationLocationType {
731
+ UNDEFINED = "UNDEFINED",
732
+ OWNER_BUSINESS = "OWNER_BUSINESS",
733
+ OWNER_CUSTOM = "OWNER_CUSTOM",
734
+ CUSTOM = "CUSTOM"
735
+ }
736
+ export interface SlotSlotResource {
737
+ /**
738
+ * Resource ID
739
+ * @readonly
740
+ */
741
+ id?: string | null;
742
+ /** Read only. Resource name. */
743
+ name?: string | null;
744
+ }
745
+ export interface SlotLocation {
746
+ /** Business Location ID. Present if the location is a business location. */
747
+ id?: string | null;
748
+ /** Location name. */
749
+ name?: string | null;
750
+ /** A string containing the full address of this location. */
751
+ formattedAddress?: string | null;
752
+ /**
753
+ * Location type.
754
+ * One of:
755
+ * - `"OWNER_BUSINESS"` The business address as set in the site’s general settings.
756
+ * - `"OWNER_CUSTOM"` The address as set when creating the service.
757
+ * - `"CUSTOM"` The address set for the individual session.
758
+ */
759
+ locationType?: LocationLocationType;
760
+ }
761
+ export interface RescheduleBookingRequestFlowControlSettings {
762
+ /**
763
+ * Whether the rescheduling policy applies when rescheduling the booking.
764
+ * When passing `false` you can only cancel a booking if the rescheduling
765
+ * policy allows it. Your app must have the `BOOKINGS.IGNORE_BOOKING_POLICY `
766
+ * permission scope when passing `true`.
767
+ * Default: `false`.
768
+ * <!--ONLY:VELO
769
+ * Requires "Manage Wix Bookings App" and "Manage Bookings' Calendar" [roles](https://support.wix.com/en/article/roles-permissions-overview#bookings-admin).
770
+ * <!--END:ONLY:VELO-->
771
+ */
772
+ ignoreReschedulePolicy?: boolean;
773
+ /**
774
+ * Whether the availability is checked before rescheduling the booking.
775
+ * When passing `false` a booking is only created when the slot or
776
+ * schedule is available. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
777
+ * permission scope when passing `true`.
778
+ * Default: `false`.
779
+ */
780
+ skipAvailabilityValidation?: boolean;
781
+ /**
782
+ * Whether the rescheduled booking's status is automatically set to
783
+ * `CONFIRMED` for services that normally require the owner's manual
784
+ * confirmation. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
785
+ * permission scope when passing `true`.
786
+ * Default: `false`.
787
+ */
788
+ skipBusinessConfirmation?: boolean;
789
+ }
790
+ export interface RescheduleBookingResponse {
791
+ /** Rescheduled booking. */
792
+ booking?: Booking;
793
+ }
794
+ export interface BulkRescheduleBookingRequest {
795
+ /** Reschedule multiple bookings to multiple slots. */
796
+ slotsBookings?: SlotBookings[];
797
+ /** Whether to notify participants about the change and an optional custom message */
798
+ participantNotification?: ParticipantNotification;
799
+ }
800
+ export interface BulkRescheduleBookingRequestBooking {
801
+ /** Id of the bookings to be rescheduled. */
802
+ id?: string;
803
+ revision?: string | null;
804
+ }
805
+ /** Bookings to be rescheduled to the given slot. */
806
+ export interface SlotBookings {
807
+ /** The bookings details. */
808
+ bookings?: BulkRescheduleBookingRequestBooking[];
809
+ /**
810
+ * The slot to which the bookings was rescheduled
811
+ * This bookings will automatically be assigned to the session if given, or will create a new one if not.
812
+ */
813
+ slot?: BookedSlot;
814
+ }
815
+ export interface BulkRescheduleBookingResponse {
816
+ /** The bulk reschedule results. For each booking contains the metadata of the reschedule action. */
817
+ results?: ItemMetadata[];
818
+ /** Total successes and failures of the bulk reschedule action. */
819
+ bulkActionMetadata?: BulkActionMetadata;
820
+ }
821
+ /** Update the booked schedule of multiple bookings to the given schedule. */
822
+ export interface BulkUpdateBookedScheduleRequest {
823
+ /** The bookings whose booked schedule is to be updated to the given schedule. */
824
+ bookings?: BookingDetails[];
825
+ /** The id of the schedule to which the bookings booked schedule is to be updated. */
826
+ scheduleId?: string;
827
+ /** Whether to notify participants about the change and an optional custom message. */
828
+ participantNotification?: ParticipantNotification;
829
+ }
830
+ export interface BookingDetails {
831
+ /** Id of the bookings to be updated. */
832
+ id?: string;
833
+ revision?: string | null;
834
+ }
835
+ export interface BulkUpdateBookedScheduleResponse {
836
+ /** The bulk update results. For each booking contains the metadata of the update action. */
837
+ results?: ItemMetadata[];
838
+ /** Total successes and failures of the bulk update action. */
839
+ bulkActionMetadata?: BulkActionMetadata;
840
+ }
841
+ export interface QueryBookingsRequest {
842
+ query?: QueryV2;
843
+ }
844
+ export interface QueryV2 extends QueryV2PagingMethodOneOf {
845
+ /**
846
+ * Filter object in the following format:
847
+ * `"filter" : {
848
+ * "fieldName1": "value1",
849
+ * "fieldName2":{"$operator":"value2"}
850
+ * }`
851
+ * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
852
+ */
853
+ filter?: Record<string, any> | null;
854
+ /**
855
+ * Sort object in the following format:
856
+ * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
857
+ */
858
+ sort?: Sorting[];
859
+ /** Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned. */
860
+ fields?: string[];
861
+ /** Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned. */
862
+ fieldsets?: string[];
863
+ /** Paging options to limit and skip the number of items. */
864
+ paging?: Paging;
865
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
866
+ cursorPaging?: CursorPaging;
867
+ }
868
+ /** @oneof */
869
+ export interface QueryV2PagingMethodOneOf {
870
+ /** Paging options to limit and skip the number of items. */
871
+ paging?: Paging;
872
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
873
+ cursorPaging?: CursorPaging;
874
+ }
875
+ export interface Sorting {
876
+ /** Name of the field to sort by. */
877
+ fieldName?: string;
878
+ /** Sort order. */
879
+ order?: SortOrder;
880
+ }
881
+ export declare enum SortOrder {
882
+ ASC = "ASC",
883
+ DESC = "DESC"
884
+ }
885
+ export interface Paging {
886
+ /** Number of items to load. */
887
+ limit?: number | null;
888
+ /** Number of items to skip in the current sort order. */
889
+ offset?: number | null;
890
+ }
891
+ export interface CursorPaging {
892
+ /** Number of items to load. */
893
+ limit?: number | null;
894
+ /**
895
+ * Pointer to the next or previous page in the list of results.
896
+ *
897
+ * You can get the relevant cursor token
898
+ * from the `pagingMetadata` object in the previous call's response.
899
+ * Not relevant for the first request.
900
+ */
901
+ cursor?: string | null;
902
+ }
903
+ export interface QueryBookingsResponse {
904
+ bookings?: Booking[];
905
+ pagingMetadata?: PagingMetadataV2;
906
+ }
907
+ export interface PagingMetadataV2 {
908
+ /** Number of items returned in the response. */
909
+ count?: number | null;
910
+ /** Offset that was requested. */
911
+ offset?: number | null;
912
+ /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */
913
+ total?: number | null;
914
+ /** Flag that indicates the server failed to calculate the `total` field. */
915
+ tooManyToCount?: boolean | null;
916
+ /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
917
+ cursors?: Cursors;
918
+ }
919
+ export interface Cursors {
920
+ /** Cursor pointing to next page in the list of results. */
921
+ next?: string | null;
922
+ /** Cursor pointing to previous page in the list of results. */
923
+ prev?: string | null;
924
+ }
925
+ export interface ConfirmRequest {
926
+ /** ID of the booking to be confirmed. */
927
+ id?: string;
928
+ /** Whether to notify the participants about the booking confirmation, and an optional custom message. */
929
+ participantNotification?: ParticipantNotification;
930
+ }
931
+ export interface ConfirmResponse {
932
+ booking?: Booking;
933
+ }
934
+ export interface ConfirmBookingRequest {
935
+ /** ID of the booking to confirm. */
936
+ bookingId: string;
937
+ /**
938
+ * Revision number, which increments by 1 each time the booking is updated.
939
+ * To prevent conflicting changes, the current revision must be passed when
940
+ * managing the booking.
941
+ */
942
+ revision: string | null;
943
+ /**
944
+ * Information about whether to notify the customer about the confirmation and
945
+ * the message to send.
946
+ */
947
+ participantNotification?: ParticipantNotification;
948
+ }
949
+ export interface ConfirmBookingResponse {
950
+ booking?: Booking;
951
+ }
952
+ export interface PartySizeRequest extends PartySizeRequestPartySizeForOneOf {
953
+ sessionId?: string | null;
954
+ scheduleId?: string | null;
955
+ }
956
+ /** @oneof */
957
+ export interface PartySizeRequestPartySizeForOneOf {
958
+ sessionId?: string | null;
959
+ scheduleId?: string | null;
960
+ }
961
+ export interface PartySizeResponse {
962
+ partySize?: number | null;
963
+ }
964
+ export interface ConsistentQueryBookingsRequest {
965
+ query?: QueryV2;
966
+ }
967
+ export interface ConsistentQueryBookingsResponse {
968
+ bookings?: Booking[];
969
+ pagingMetadata?: PagingMetadataV2;
970
+ }
971
+ export interface SetBookingSessionIdRequest {
972
+ /** Id of the booking to set its sessionId. */
973
+ id?: string;
974
+ /** The sessionId to be set. */
975
+ sessionId?: string;
976
+ }
977
+ export interface SetBookingSessionIdResponse {
978
+ /** The updated booking. */
979
+ booking?: Booking;
980
+ }
981
+ export interface UpdateExtendedFieldsRequest {
982
+ /** entity_id */
983
+ id?: string;
984
+ namespace?: string;
985
+ namespaceData?: Record<string, any> | null;
986
+ }
987
+ export interface UpdateExtendedFieldsResponse {
988
+ namespace?: string;
989
+ /** only data from UpdateExtendedFieldsRequest namespace_data */
990
+ namespaceData?: Record<string, any> | null;
991
+ }
992
+ export interface DeclineBookingRequest {
993
+ /** ID of the booking to decline. */
994
+ bookingId: string;
995
+ /**
996
+ * Revision number, which increments by 1 each time the booking is updated.
997
+ * To prevent conflicting changes, the current revision must be passed when
998
+ * managing the booking.
999
+ */
1000
+ revision: string | null;
1001
+ /**
1002
+ * Information about whether to notify the customer about the decline and
1003
+ * the message to send.
1004
+ */
1005
+ participantNotification?: ParticipantNotification;
1006
+ }
1007
+ export interface DeclineBookingResponse {
1008
+ /** eclined booking */
1009
+ booking?: Booking;
1010
+ }
1011
+ export interface BookingDeclined {
1012
+ /** The booking after the decline. */
1013
+ currentBooking?: Booking;
1014
+ /** Whether the booking is double-booking or was declined by the owner. */
1015
+ doubleBooking?: boolean | null;
1016
+ /** Whether to notify participants about the change and an optional custom message */
1017
+ participantNotification?: ParticipantNotification;
1018
+ /** The identity that did the action triggered the event */
1019
+ declinedBy?: IdentificationData;
1020
+ }
1021
+ export interface IdentificationData extends IdentificationDataIdOneOf {
1022
+ /**
1023
+ * ID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system.
1024
+ * @readonly
1025
+ */
1026
+ contactId?: string | null;
1027
+ /** ID of a site visitor that has not logged in to the site. */
1028
+ anonymousVisitorId?: string;
1029
+ /** ID of a site visitor that has logged in to the site. */
1030
+ memberId?: string;
1031
+ /** ID of a Wix user (site owner, contributor, etc.). */
1032
+ wixUserId?: string;
1033
+ /** ID of an app. */
1034
+ appId?: string;
1035
+ }
1036
+ /** @oneof */
1037
+ export interface IdentificationDataIdOneOf {
1038
+ /** ID of a site visitor that has not logged in to the site. */
1039
+ anonymousVisitorId?: string;
1040
+ /** ID of a site visitor that has logged in to the site. */
1041
+ memberId?: string;
1042
+ /** ID of a Wix user (site owner, contributor, etc.). */
1043
+ wixUserId?: string;
1044
+ /** ID of an app. */
1045
+ appId?: string;
1046
+ }
1047
+ export declare enum IdentityType {
1048
+ UNKNOWN = "UNKNOWN",
1049
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
1050
+ MEMBER = "MEMBER",
1051
+ WIX_USER = "WIX_USER",
1052
+ APP = "APP"
1053
+ }
1054
+ export interface CancelBookingRequest {
1055
+ /** ID of the booking to cancel. */
1056
+ bookingId: string;
1057
+ /**
1058
+ * Information about whether to notify the customer about the cancelation and
1059
+ * the message to send.
1060
+ */
1061
+ participantNotification?: ParticipantNotification;
1062
+ /**
1063
+ * Information about whether specific procedures of the standard Wix Bookings
1064
+ * cancelation flow are changed. For example, whether the you can cancel
1065
+ * a booking even though the cancelation policy doesn't allow it or whether
1066
+ * to issue a refund.
1067
+ */
1068
+ flowControlSettings?: CancelBookingRequestFlowControlSettings;
1069
+ /**
1070
+ * Revision number, which increments by 1 each time the booking is updated.
1071
+ * To prevent conflicting changes,
1072
+ * the current revision must be passed when managing the booking.
1073
+ */
1074
+ revision: string | null;
1075
+ }
1076
+ export interface CancelBookingRequestFlowControlSettings {
1077
+ /**
1078
+ * Whether the cancelation policy applies when canceling the booking. When
1079
+ * passing `false` you can only cancel a booking if the cancelation policy
1080
+ * allows it. Your app must have the `BOOKINGS.IGNORE_BOOKING_POLICY `
1081
+ * permission scope when passing `true`.
1082
+ * Default: `false`.
1083
+ * <!--ONLY:VELO
1084
+ * Requires "Manage Wix Bookings App" and "Manage Bookings' Calendar" [roles](https://support.wix.com/en/article/roles-permissions-overview#bookings-admin).
1085
+ * <!--END:ONLY:VELO-->
1086
+ */
1087
+ ignoreCancellationPolicy?: boolean | null;
1088
+ /**
1089
+ * Whether to issue a refund when canceling the booking.
1090
+ * The refund will be issued only if the booking is refundable.
1091
+ * Currently, booking is considered refundable when it was paid by membership.
1092
+ * If passing `true`, the booking flow control settings will be set with refund,
1093
+ * otherwise, either if `false` is passed or the field remains empty,
1094
+ * the booking flow control settings will be set with no refund.
1095
+ * Default: `false`.
1096
+ */
1097
+ withRefund?: boolean | null;
1098
+ }
1099
+ export interface CancelBookingResponse {
1100
+ /** Canceled booking. */
1101
+ booking?: Booking;
1102
+ }
1103
+ export interface BookingCanceled {
1104
+ /** The canceled booking. */
1105
+ currentBooking?: Booking;
1106
+ /** Whether the booking should be refunded */
1107
+ issueRefund?: boolean | null;
1108
+ /** Whether to notify participants about the change and an optional custom message */
1109
+ participantNotification?: ParticipantNotification;
1110
+ /** The identity that did the action triggered the event */
1111
+ canceledBy?: IdentificationData;
1112
+ }
1113
+ export interface UpdateNumberOfParticipantsRequest extends UpdateNumberOfParticipantsRequestParticipantsInfoOneOf {
1114
+ /** ID of the booking to update the number of participants for. */
1115
+ bookingId: string;
1116
+ /**
1117
+ * Revision number, which increments by 1 each time the booking is updated.
1118
+ * To prevent conflicting changes, the current revision must be passed when
1119
+ * managing the booking.
1120
+ */
1121
+ revision: string | null;
1122
+ /**
1123
+ * Total number of participants. Available only for services with
1124
+ * variants.
1125
+ * Pass when all participants book the same variant.
1126
+ */
1127
+ totalParticipants?: number;
1128
+ /**
1129
+ * Information about the service choices to book. Available only for services with
1130
+ * variants.
1131
+ * Pass when not all participants book the same variant.
1132
+ */
1133
+ participantsChoices?: ParticipantChoices;
1134
+ }
1135
+ /** @oneof */
1136
+ export interface UpdateNumberOfParticipantsRequestParticipantsInfoOneOf {
1137
+ /**
1138
+ * Total number of participants. Available only for services with
1139
+ * variants.
1140
+ * Pass when all participants book the same variant.
1141
+ */
1142
+ totalParticipants?: number;
1143
+ /**
1144
+ * Information about the service choices to book. Available only for services with
1145
+ * variants.
1146
+ * Pass when not all participants book the same variant.
1147
+ */
1148
+ participantsChoices?: ParticipantChoices;
1149
+ }
1150
+ export interface UpdateNumberOfParticipantsResponse {
1151
+ /** Booking with updated number of participants. */
1152
+ booking?: Booking;
1153
+ }
1154
+ export interface CalculateAllowedActionsRequest {
1155
+ /** The booking id that we want to calculate the allowedActions for */
1156
+ bookingId?: string | null;
1157
+ }
1158
+ export interface CalculateAllowedActionsResponse {
1159
+ allowedActions?: AllowedActions;
1160
+ }
1161
+ /** Possible allowed actions for a Booking */
1162
+ export interface AllowedActions {
1163
+ /** Is cancel booking allowed */
1164
+ cancel?: boolean;
1165
+ /** Is reschedule booking allowed */
1166
+ reschedule?: boolean;
1167
+ }
1168
+ export interface BulkCalculateAllowedActionsRequest {
1169
+ /** The booking id's that we want to calculate the allowedActions for */
1170
+ bookingIds?: string[] | null;
1171
+ }
1172
+ export interface BulkCalculateAllowedActionsResponse {
1173
+ results?: BulkCalculateAllowedActionsResult[];
1174
+ bulkActionMetadata?: BulkActionMetadata;
1175
+ }
1176
+ export interface BulkCalculateAllowedActionsResult {
1177
+ /** (id, indexInGivenSeq, isSuccessful, error) */
1178
+ itemMetadata?: ItemMetadata;
1179
+ item?: AllowedActions;
1180
+ }
1181
+ export interface GetSlotAvailabilityRequest {
1182
+ /** The slot for which the availability is checked. */
1183
+ slot?: V2Slot;
1184
+ /** The timezone for which availability is to be calculated. */
1185
+ timezone?: string | null;
1186
+ }
1187
+ export interface GetSlotAvailabilityResponse {
1188
+ availability?: SlotAvailability;
1189
+ bookingPolicySettings?: BookingPolicySettings;
1190
+ }
1191
+ export interface SlotAvailability {
1192
+ /** Identifier for underlying session when session is a single session or generated from a recurring session. Required. */
1193
+ slot?: V2Slot;
1194
+ /** Whether this available slot is bookable. */
1195
+ bookable?: boolean;
1196
+ /**
1197
+ * Total number of spots for this availability.
1198
+ * For example, for a class of 10 spots with 3 spots booked, `spotsTotal` is 10, `openSpots` is 7.
1199
+ */
1200
+ totalSpots?: number | null;
1201
+ /**
1202
+ * Number of open spots for this availability.
1203
+ * For appointment if there are existing bookings with overlapping time, service & resource, `openSpots` is 0, otherwise `openSpots` is 1.
1204
+ */
1205
+ openSpots?: number | null;
1206
+ /** An object describing the slot's waiting-list and its occupancy. */
1207
+ waitingList?: WaitingList;
1208
+ /** Indicators for booking policy violations for the slot. */
1209
+ bookingPolicyViolations?: BookingPolicyViolations;
1210
+ /** Indicates whether this slot is locked. */
1211
+ locked?: boolean | null;
1212
+ }
1213
+ export interface WaitingList {
1214
+ /**
1215
+ * Total number of spots and open spots for this waiting list.
1216
+ * For example, a Yoga class of 10 waiting list spots with 3 registered on the waiting list has total_spots: 10 and open_spots: 7.
1217
+ */
1218
+ totalSpots?: number | null;
1219
+ openSpots?: number | null;
1220
+ }
1221
+ export interface BookingPolicyViolations {
1222
+ /** Bookings policy violation. Too early to book this slot. */
1223
+ tooEarlyToBook?: boolean | null;
1224
+ /** Bookings policy violation. Too late to book this slot. */
1225
+ tooLateToBook?: boolean | null;
1226
+ /** Bookings policy violation. Online booking is disabled for this slot. */
1227
+ bookOnlineDisabled?: boolean | null;
1228
+ }
1229
+ export interface BookingPolicySettings {
1230
+ /** Booking policy settings for a given Slot/Schedule */
1231
+ maxParticipantsPerBooking?: number | null;
1232
+ }
1233
+ export interface GetScheduleAvailabilityRequest {
1234
+ /** The schedule ID for which availability is checked. */
1235
+ scheduleId?: string;
1236
+ }
1237
+ export interface GetScheduleAvailabilityResponse {
1238
+ availability?: ScheduleAvailability;
1239
+ bookingPolicySettings?: BookingPolicySettings;
1240
+ }
1241
+ export interface ScheduleAvailability {
1242
+ totalSpots?: number | null;
1243
+ openSpots?: number | null;
1244
+ /** Indicators of booking policy violations for the given Schedule. */
1245
+ bookingPolicyViolations?: BookingPolicyViolations;
1246
+ }
1247
+ export interface ConfirmOrDeclineRequest {
1248
+ /** ID of the booking to be confirmed or declined. */
1249
+ bookingId?: string;
1250
+ /** Will be updated on the booking to indicate the payment status. */
1251
+ paymentStatus?: PaymentStatus;
1252
+ /** Contact's ID. */
1253
+ contactId?: string | null;
1254
+ }
1255
+ export interface ConfirmOrDeclineResponse {
1256
+ booking?: Booking;
1257
+ }
1258
+ export interface ConfirmOrDeclineBookingRequest {
1259
+ /** ID of the booking to be confirmed or declined. */
1260
+ bookingId?: string;
1261
+ /** Will be passed to bookings.update to indicate the payment status. */
1262
+ paymentStatus?: PaymentStatus;
1263
+ /** Contact's ID. */
1264
+ contactId?: string | null;
1265
+ }
1266
+ export interface ConfirmOrDeclineBookingResponse {
1267
+ booking?: Booking;
1268
+ }
1269
+ export interface V2CreateBookingRequest extends V2CreateBookingRequestBookableItemOneOf, V2CreateBookingRequestParticipantsInfoOneOf {
1270
+ /** Contact details of the customer booking the service. */
1271
+ contactDetails?: ContactDetails;
1272
+ /**
1273
+ * Additional custom fields of the booking form. The customer must provide
1274
+ * information for each field when booking the service. For example, that they
1275
+ * bring their own towels or whether they use a wheelchair.
1276
+ *
1277
+ * Max: 100 fields
1278
+ */
1279
+ additionalFields?: CustomFormField[];
1280
+ /**
1281
+ * Total number of participants. Available only when the service doesn't have
1282
+ * [variants](https://dev.wix.com/api/rest/wix-bookings/service-options-and-variants/introduction).
1283
+ *
1284
+ * Max: `20`
1285
+ */
1286
+ numberOfParticipants?: number | null;
1287
+ /**
1288
+ * Internal business note. Not visible to the customer.
1289
+ *
1290
+ * Max: 200 characters
1291
+ */
1292
+ internalBusinessNote?: string | null;
1293
+ /**
1294
+ * Payment option the customer intends to use.
1295
+ * Must be one of the payment options defined for the service, unless
1296
+ * you pass `flowControlSettings.skipSelectedPaymentOptionValidation` as `true`.
1297
+ */
1298
+ selectedPaymentOption?: SelectedPaymentOption;
1299
+ /**
1300
+ * Identifies the source (platform, actor and app) that created this booking.
1301
+ * This property of the booking cannot be changed.
1302
+ * The app_def_id and app_name will be resolved automatically.
1303
+ * TODO GAP See if we need this - might be able to get this data from the headers?
1304
+ */
1305
+ bookingSource?: BookingSource;
1306
+ /**
1307
+ * A user identifier of an external application user that initiated the book request.
1308
+ * Allows an external application to later identify its own bookings and correlate to its own internal users
1309
+ */
1310
+ externalUserId?: string | null;
1311
+ /** Information about a message to send to the customer. */
1312
+ participantNotification?: ParticipantNotification;
1313
+ /**
1314
+ * Whether to send an SMS reminder to the customer 24 hours before the
1315
+ * session starts. The phone number is taken from `contactDetails.phone`.
1316
+ *
1317
+ * Default: `true`.
1318
+ */
1319
+ sendSmsReminder?: boolean | null;
1320
+ /**
1321
+ * Information about whether specific procedures of the standard Wix Bookings
1322
+ * creation flow are changed. For example, whether the availability is
1323
+ * checked before creating the booking or if additional payment options are
1324
+ * accepted.
1325
+ */
1326
+ flowControlSettings?: CreateBookingRequestFlowControlSettings;
1327
+ /**
1328
+ * Information about the slot to create a booking for.
1329
+ * If you set `slot.location.locationType` to `CUSTOM`, the created slot's
1330
+ * location is set to `slot.location.formattedAddress` when provided.
1331
+ * Otherwise it's set to `contactDetails.fullAddress.formattedAddress`.
1332
+ */
1333
+ slot?: Slot;
1334
+ /** Information about the schedule to create a booking for. */
1335
+ schedule?: BookedSchedule;
1336
+ }
1337
+ /** @oneof */
1338
+ export interface V2CreateBookingRequestBookableItemOneOf {
1339
+ /**
1340
+ * Information about the slot to create a booking for.
1341
+ * If you set `slot.location.locationType` to `CUSTOM`, the created slot's
1342
+ * location is set to `slot.location.formattedAddress` when provided.
1343
+ * Otherwise it's set to `contactDetails.fullAddress.formattedAddress`.
1344
+ */
1345
+ slot?: Slot;
1346
+ /** Information about the schedule to create a booking for. */
1347
+ schedule?: BookedSchedule;
1348
+ }
1349
+ /** @oneof */
1350
+ export interface V2CreateBookingRequestParticipantsInfoOneOf {
1351
+ }
1352
+ export interface Slot {
1353
+ /**
1354
+ * ID for the slot's corresponding session, when the session is either a single session
1355
+ * or a specific session generated from a recurring session.
1356
+ */
1357
+ sessionId?: string | null;
1358
+ /** Service ID. */
1359
+ serviceId?: string;
1360
+ /** Schedule ID. */
1361
+ scheduleId?: string;
1362
+ /**
1363
+ * The start time of this slot in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)
1364
+ * format.
1365
+ *
1366
+ * If `timezone` is specified,
1367
+ * dates are based on the local date/time. This means that the timezone offset
1368
+ * in the `start_date` is ignored.
1369
+ */
1370
+ startDate?: string | null;
1371
+ /**
1372
+ * The end time of this slot in
1373
+ * [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) format.
1374
+ *
1375
+ * If `timezone` is specified,
1376
+ * dates are based on the local date/time. This means that the timezone offset
1377
+ * in the `end_date` is ignored.
1378
+ */
1379
+ endDate?: string | null;
1380
+ /**
1381
+ * The timezone for which slot availability is to be calculated.
1382
+ *
1383
+ * Learn more about [handling Daylight Savings Time (DST) for local time zones](https://dev.wix.com/api/rest/wix-bookings/availability-calendar/query-availability#wix-bookings_availability-calendar_query-availability_handling-daylight-savings-time-dst-for-local-time-zones)
1384
+ * when calculating availability.
1385
+ */
1386
+ timezone?: string | null;
1387
+ /**
1388
+ * The resource required for this slot. Currently, the only supported resource
1389
+ * is the relevant staff member for the slot.
1390
+ */
1391
+ resource?: SlotResource;
1392
+ /** Geographic location of the slot. */
1393
+ location?: Location;
1394
+ }
1395
+ export interface SlotResource {
1396
+ /**
1397
+ * Resource ID.
1398
+ * @readonly
1399
+ */
1400
+ id?: string | null;
1401
+ /** Resource name. Read only. */
1402
+ name?: string | null;
1403
+ }
1404
+ export interface CreateBookingRequestFlowControlSettings {
1405
+ /**
1406
+ * Whether the availability is checked before creating the booking. When
1407
+ * passing `false` a booking is only created when the slot or schedule is
1408
+ * available. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
1409
+ * permission scope when passing `true`.
1410
+ *
1411
+ * Default: `false`.
1412
+ */
1413
+ skipAvailabilityValidation?: boolean;
1414
+ /**
1415
+ * Whether `PENDING` bookings are automatically set to `CONFIRMED` for
1416
+ * services that normally require the owner's manual confirmation. Your
1417
+ * app must have the `BOOKINGS.OVERRIDE_AVAILABILITY` permission scope
1418
+ * when passing `true`.
1419
+ *
1420
+ * Default: `false`.
1421
+ */
1422
+ skipBusinessConfirmation?: boolean;
1423
+ /**
1424
+ * Whether customers can pay using a payment method that isn't supported
1425
+ * for the service, but that's supported for other services. Your app
1426
+ * must have the `BOOKINGS.MANAGE_PAYMENTS` permission scope when passing
1427
+ * `true`.
1428
+ *
1429
+ * Default: `false`.
1430
+ */
1431
+ skipSelectedPaymentOptionValidation?: boolean;
1432
+ }
1433
+ export interface V2CreateBookingResponse {
1434
+ /** Created booking. */
1435
+ booking?: Booking;
1436
+ }
1437
+ export interface V2CancelBookingRequest {
1438
+ /** ID of the booking to cancel. */
1439
+ bookingId: string;
1440
+ /**
1441
+ * Information about whether to notify the customer about the cancelation and
1442
+ * the message to send.
1443
+ */
1444
+ participantNotification?: ParticipantNotification;
1445
+ /**
1446
+ * Revision number, which increments by 1 each time the booking is updated.
1447
+ * To prevent conflicting changes,
1448
+ * the current revision must be passed when managing the booking.
1449
+ */
1450
+ revision: string | null;
1451
+ }
1452
+ export interface V2CancelBookingRequestFlowControlSettings {
1453
+ /**
1454
+ * Whether the cancelation policy applies when canceling the booking. When
1455
+ * passing `false` you can only cancel a booking if the cancelation policy
1456
+ * allows it. Your app must have the `BOOKINGS.IGNORE_BOOKING_POLICY `
1457
+ * permission scope when passing `true`.
1458
+ *
1459
+ * Default: `false`.
1460
+ *
1461
+ * <!--ONLY:VELO
1462
+ * Requires "Manage Wix Bookings App" and "Manage Bookings' Calendar" [roles](https://support.wix.com/en/article/roles-permissions-overview#bookings-admin).
1463
+ * <!--END:ONLY:VELO-->
1464
+ */
1465
+ ignoreCancellationPolicy?: boolean;
1466
+ /**
1467
+ * Whether to issue a refund when canceling the booking.
1468
+ * The refund will be issued only if the booking is refundable.
1469
+ * Currently, booking is considered refundable when it was paid by membership.
1470
+ * If passing `true`, the booking flow control settings will be set with refund,
1471
+ * otherwise, either if `false` is passed or the field remains empty,
1472
+ * the booking flow control settings will be set with no refund.
1473
+ *
1474
+ * Default: `false`.
1475
+ */
1476
+ withRefund?: boolean | null;
1477
+ }
1478
+ export interface V2CancelBookingResponse {
1479
+ /** Canceled booking. */
1480
+ booking?: Booking;
1481
+ }
1482
+ export interface V2RescheduleBookingRequest extends V2RescheduleBookingRequestParticipantsInfoOneOf {
1483
+ /** Id of the booking to reschedule. */
1484
+ bookingId: string;
1485
+ /** Information about the new slot. */
1486
+ slot: Slot;
1487
+ /**
1488
+ * Revision number, which increments by 1 each time the booking is updated.
1489
+ * To prevent conflicting changes, the current revision must be passed when
1490
+ * managing the booking.
1491
+ */
1492
+ revision: string | null;
1493
+ /**
1494
+ * Information about whether to notify the customer about the rescheduling and
1495
+ * the message to send.
1496
+ */
1497
+ participantNotification?: ParticipantNotification;
1498
+ }
1499
+ /** @oneof */
1500
+ export interface V2RescheduleBookingRequestParticipantsInfoOneOf {
1501
+ }
1502
+ export interface V2RescheduleBookingRequestFlowControlSettings {
1503
+ /**
1504
+ * Whether the rescheduling policy applies when rescheduling the booking.
1505
+ * When passing `false` you can only cancel a booking if the rescheduling
1506
+ * policy allows it. Your app must have the `BOOKINGS.IGNORE_BOOKING_POLICY `
1507
+ * permission scope when passing `true`.
1508
+ *
1509
+ * Default: `false`.
1510
+ *
1511
+ * <!--ONLY:VELO
1512
+ * Requires "Manage Wix Bookings App" and "Manage Bookings' Calendar" [roles](https://support.wix.com/en/article/roles-permissions-overview#bookings-admin).
1513
+ * <!--END:ONLY:VELO-->
1514
+ */
1515
+ ignoreReschedulePolicy?: boolean;
1516
+ /**
1517
+ * Whether the availability is checked before rescheduling the booking.
1518
+ * When passing `false` a booking is only created when the slot or
1519
+ * schedule is available. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
1520
+ * permission scope when passing `true`.
1521
+ *
1522
+ * Default: `false`.
1523
+ */
1524
+ skipAvailabilityValidation?: boolean;
1525
+ /**
1526
+ * Whether the rescheduled booking's status is automatically set to
1527
+ * `CONFIRMED` for services that normally require the owner's manual
1528
+ * confirmation. Your app must have the `BOOKINGS.OVERRIDE_AVAILABILITY`
1529
+ * permission scope when passing `true`.
1530
+ *
1531
+ * Default: `false`.
1532
+ */
1533
+ skipBusinessConfirmation?: boolean;
1534
+ }
1535
+ export interface V2RescheduleBookingResponse {
1536
+ /** Rescheduled booking. */
1537
+ booking?: Booking;
1538
+ }
1539
+ export interface V2ConfirmBookingRequest {
1540
+ /** ID of the booking to confirm. */
1541
+ bookingId: string;
1542
+ /**
1543
+ * Revision number, which increments by 1 each time the booking is updated.
1544
+ * To prevent conflicting changes, the current revision must be passed when
1545
+ * managing the booking.
1546
+ */
1547
+ revision: string | null;
1548
+ /**
1549
+ * Information about whether to notify the customer about the confirmation and
1550
+ * the message to send.
1551
+ */
1552
+ participantNotification?: ParticipantNotification;
1553
+ }
1554
+ export interface V2ConfirmBookingResponse {
1555
+ booking?: Booking;
1556
+ }
1557
+ export interface V2DeclineBookingRequest {
1558
+ /** ID of the booking to decline. */
1559
+ bookingId: string;
1560
+ /**
1561
+ * Revision number, which increments by 1 each time the booking is updated.
1562
+ * To prevent conflicting changes, the current revision must be passed when
1563
+ * managing the booking.
1564
+ */
1565
+ revision: string | null;
1566
+ /**
1567
+ * Information about whether to notify the customer about the decline and
1568
+ * the message to send.
1569
+ */
1570
+ participantNotification?: ParticipantNotification;
1571
+ }
1572
+ export interface V2DeclineBookingResponse {
1573
+ /** Declined booking. */
1574
+ booking?: Booking;
1575
+ }
1576
+ export interface V2UpdateNumberOfParticipantsRequest extends V2UpdateNumberOfParticipantsRequestParticipantsInfoOneOf {
1577
+ /** ID of the booking to update the number of participants for. */
1578
+ bookingId: string;
1579
+ /** Updated number of participants. */
1580
+ numberOfParticipants?: number | null;
1581
+ /**
1582
+ * Revision number, which increments by 1 each time the booking is updated.
1583
+ * To prevent conflicting changes, the current revision must be passed when
1584
+ * managing the booking.
1585
+ */
1586
+ revision: string | null;
1587
+ }
1588
+ /** @oneof */
1589
+ export interface V2UpdateNumberOfParticipantsRequestParticipantsInfoOneOf {
1590
+ }
1591
+ export interface V2UpdateNumberOfParticipantsResponse {
1592
+ /** Booking with updated number of participants. */
1593
+ booking?: Booking;
1594
+ }