@wix/auto_sdk_bookings_services 1.0.32 → 1.0.34
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.
- package/build/{es/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.mts} +729 -424
- package/build/{cjs/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.ts} +729 -424
- package/build/{internal/cjs/src/bookings-services-v2-service-services.public.d.ts → index.d.mts} +62 -30
- package/build/{cjs/src/bookings-services-v2-service-services.public.d.ts → index.d.ts} +62 -30
- package/build/index.js +3208 -0
- package/build/index.js.map +1 -0
- package/build/index.mjs +3124 -0
- package/build/index.mjs.map +1 -0
- package/build/internal/{cjs/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.mts} +729 -424
- package/build/internal/{es/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.ts} +729 -424
- package/build/{es/src/bookings-services-v2-service-services.public.d.ts → internal/index.d.mts} +62 -30
- package/build/internal/{es/src/bookings-services-v2-service-services.public.d.ts → index.d.ts} +62 -30
- package/build/internal/index.js +3208 -0
- package/build/internal/index.js.map +1 -0
- package/build/internal/index.mjs +3124 -0
- package/build/internal/index.mjs.map +1 -0
- package/build/internal/meta.d.mts +2302 -0
- package/build/internal/meta.d.ts +2302 -0
- package/build/internal/meta.js +1761 -0
- package/build/internal/meta.js.map +1 -0
- package/build/internal/meta.mjs +1714 -0
- package/build/internal/meta.mjs.map +1 -0
- package/build/meta.d.mts +2302 -0
- package/build/meta.d.ts +2302 -0
- package/build/meta.js +1761 -0
- package/build/meta.js.map +1 -0
- package/build/meta.mjs +1714 -0
- package/build/meta.mjs.map +1 -0
- package/package.json +13 -12
- package/build/cjs/index.d.ts +0 -1
- package/build/cjs/index.js +0 -18
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/index.typings.d.ts +0 -1
- package/build/cjs/index.typings.js +0 -18
- package/build/cjs/index.typings.js.map +0 -1
- package/build/cjs/meta.d.ts +0 -1
- package/build/cjs/meta.js +0 -18
- package/build/cjs/meta.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.context.d.ts +0 -41
- package/build/cjs/src/bookings-services-v2-service-services.context.js +0 -82
- package/build/cjs/src/bookings-services-v2-service-services.context.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.http.d.ts +0 -489
- package/build/cjs/src/bookings-services-v2-service-services.http.js +0 -1797
- package/build/cjs/src/bookings-services-v2-service-services.http.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.meta.d.ts +0 -47
- package/build/cjs/src/bookings-services-v2-service-services.meta.js +0 -427
- package/build/cjs/src/bookings-services-v2-service-services.meta.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.public.js +0 -304
- package/build/cjs/src/bookings-services-v2-service-services.public.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.types.js +0 -349
- package/build/cjs/src/bookings-services-v2-service-services.types.js.map +0 -1
- package/build/cjs/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
- package/build/cjs/src/bookings-services-v2-service-services.universal.js +0 -2252
- package/build/cjs/src/bookings-services-v2-service-services.universal.js.map +0 -1
- package/build/es/index.d.ts +0 -1
- package/build/es/index.js +0 -2
- package/build/es/index.js.map +0 -1
- package/build/es/index.typings.d.ts +0 -1
- package/build/es/index.typings.js +0 -2
- package/build/es/index.typings.js.map +0 -1
- package/build/es/meta.d.ts +0 -1
- package/build/es/meta.js +0 -2
- package/build/es/meta.js.map +0 -1
- package/build/es/package.json +0 -3
- package/build/es/src/bookings-services-v2-service-services.context.d.ts +0 -41
- package/build/es/src/bookings-services-v2-service-services.context.js +0 -41
- package/build/es/src/bookings-services-v2-service-services.context.js.map +0 -1
- package/build/es/src/bookings-services-v2-service-services.http.d.ts +0 -489
- package/build/es/src/bookings-services-v2-service-services.http.js +0 -1773
- package/build/es/src/bookings-services-v2-service-services.http.js.map +0 -1
- package/build/es/src/bookings-services-v2-service-services.meta.d.ts +0 -47
- package/build/es/src/bookings-services-v2-service-services.meta.js +0 -380
- package/build/es/src/bookings-services-v2-service-services.meta.js.map +0 -1
- package/build/es/src/bookings-services-v2-service-services.public.js +0 -242
- package/build/es/src/bookings-services-v2-service-services.public.js.map +0 -1
- package/build/es/src/bookings-services-v2-service-services.types.js +0 -346
- package/build/es/src/bookings-services-v2-service-services.types.js.map +0 -1
- package/build/es/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
- package/build/es/src/bookings-services-v2-service-services.universal.js +0 -2204
- package/build/es/src/bookings-services-v2-service-services.universal.js.map +0 -1
- package/build/internal/cjs/index.d.ts +0 -1
- package/build/internal/cjs/index.js +0 -18
- package/build/internal/cjs/index.js.map +0 -1
- package/build/internal/cjs/index.typings.d.ts +0 -1
- package/build/internal/cjs/index.typings.js +0 -18
- package/build/internal/cjs/index.typings.js.map +0 -1
- package/build/internal/cjs/meta.d.ts +0 -1
- package/build/internal/cjs/meta.js +0 -18
- package/build/internal/cjs/meta.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.context.d.ts +0 -41
- package/build/internal/cjs/src/bookings-services-v2-service-services.context.js +0 -82
- package/build/internal/cjs/src/bookings-services-v2-service-services.context.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.http.d.ts +0 -489
- package/build/internal/cjs/src/bookings-services-v2-service-services.http.js +0 -1797
- package/build/internal/cjs/src/bookings-services-v2-service-services.http.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.meta.d.ts +0 -47
- package/build/internal/cjs/src/bookings-services-v2-service-services.meta.js +0 -427
- package/build/internal/cjs/src/bookings-services-v2-service-services.meta.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.public.js +0 -304
- package/build/internal/cjs/src/bookings-services-v2-service-services.public.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.types.js +0 -349
- package/build/internal/cjs/src/bookings-services-v2-service-services.types.js.map +0 -1
- package/build/internal/cjs/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
- package/build/internal/cjs/src/bookings-services-v2-service-services.universal.js +0 -2252
- package/build/internal/cjs/src/bookings-services-v2-service-services.universal.js.map +0 -1
- package/build/internal/es/index.d.ts +0 -1
- package/build/internal/es/index.js +0 -2
- package/build/internal/es/index.js.map +0 -1
- package/build/internal/es/index.typings.d.ts +0 -1
- package/build/internal/es/index.typings.js +0 -2
- package/build/internal/es/index.typings.js.map +0 -1
- package/build/internal/es/meta.d.ts +0 -1
- package/build/internal/es/meta.js +0 -2
- package/build/internal/es/meta.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.context.d.ts +0 -41
- package/build/internal/es/src/bookings-services-v2-service-services.context.js +0 -41
- package/build/internal/es/src/bookings-services-v2-service-services.context.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.http.d.ts +0 -489
- package/build/internal/es/src/bookings-services-v2-service-services.http.js +0 -1773
- package/build/internal/es/src/bookings-services-v2-service-services.http.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.meta.d.ts +0 -47
- package/build/internal/es/src/bookings-services-v2-service-services.meta.js +0 -380
- package/build/internal/es/src/bookings-services-v2-service-services.meta.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.public.js +0 -242
- package/build/internal/es/src/bookings-services-v2-service-services.public.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.types.js +0 -346
- package/build/internal/es/src/bookings-services-v2-service-services.types.js.map +0 -1
- package/build/internal/es/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
- package/build/internal/es/src/bookings-services-v2-service-services.universal.js +0 -2204
- package/build/internal/es/src/bookings-services-v2-service-services.universal.js.map +0 -1
package/build/meta.d.ts
ADDED
|
@@ -0,0 +1,2302 @@
|
|
|
1
|
+
import { bJ as CreateServiceRequest$1, bK as CreateServiceResponse$1, bU as GetServiceRequest$1, bV as GetServiceResponse$1, b_ as UpdateServiceRequest$1, b$ as UpdateServiceResponse$1, c0 as BulkUpdateServicesRequest$1, a as BulkUpdateServicesResponse$1, c2 as BulkUpdateServicesByFilterRequest$1, c as BulkUpdateServicesByFilterResponse$1, c3 as DeleteServiceRequest$1, c5 as DeleteServiceResponse$1, c6 as BulkDeleteServicesRequest$1, e as BulkDeleteServicesResponse$1, c7 as BulkDeleteServicesByFilterRequest$1, g as BulkDeleteServicesByFilterResponse$1, c8 as QueryServicesRequest$1, ce as QueryServicesResponse$1, ch as SearchServicesRequest$1, i as SearchServicesResponse$1, cU as QueryPoliciesRequest$1, k as QueryPoliciesResponse$1, cX as QueryBookingFormsRequest$1, m as QueryBookingFormsResponse$1, c$ as CountServicesRequest$1, o as CountServicesResponse$1, d0 as QueryLocationsRequest$1, q as QueryLocationsResponse$1, d5 as QueryCategoriesRequest$1, s as QueryCategoriesResponse$1, d9 as SetServiceLocationsRequest$1, u as SetServiceLocationsResponse$1, dd as EnablePricingPlansForServiceRequest$1, E as EnablePricingPlansForServiceResponse$1, df as DisablePricingPlansForServiceRequest$1, w as DisablePricingPlansForServiceResponse$1, dg as SetCustomSlugRequest$1, y as SetCustomSlugResponse$1, dh as ValidateSlugRequest$1, A as ValidateSlugResponse$1, di as CloneServiceRequest$1, F as CloneServiceResponse$1 } from './bookings-services-v2-service-services.universal-Dn8Flkdi.js';
|
|
2
|
+
|
|
3
|
+
/** The `service` object represents an offering that a business provides to its customers. */
|
|
4
|
+
interface Service {
|
|
5
|
+
/**
|
|
6
|
+
* Service ID.
|
|
7
|
+
* @format GUID
|
|
8
|
+
* @readonly
|
|
9
|
+
*/
|
|
10
|
+
id?: string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Service type.
|
|
13
|
+
* Learn more about *service types*
|
|
14
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-types) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types)).
|
|
15
|
+
*/
|
|
16
|
+
type?: ServiceType;
|
|
17
|
+
/**
|
|
18
|
+
* Order of the service within a *category*
|
|
19
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/categories/setup) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object)).
|
|
20
|
+
*/
|
|
21
|
+
sortOrder?: number | null;
|
|
22
|
+
/**
|
|
23
|
+
* Service name.
|
|
24
|
+
* @maxLength 400
|
|
25
|
+
* @minLength 1
|
|
26
|
+
*/
|
|
27
|
+
name?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* Service description. For example, `High-class hair styling, cuts, straightening and color`.
|
|
30
|
+
* @maxLength 7000
|
|
31
|
+
*/
|
|
32
|
+
description?: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Short service description, such as `Hair styling`.
|
|
35
|
+
* @maxLength 6000
|
|
36
|
+
*/
|
|
37
|
+
tagLine?: string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.
|
|
40
|
+
* @min 1
|
|
41
|
+
* @max 1000
|
|
42
|
+
*/
|
|
43
|
+
defaultCapacity?: number | null;
|
|
44
|
+
/** Media associated with the service. */
|
|
45
|
+
media?: Media;
|
|
46
|
+
/** Whether the service is hidden from the site. */
|
|
47
|
+
hidden?: boolean | null;
|
|
48
|
+
/**
|
|
49
|
+
* _Category_
|
|
50
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/categories/setup) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object))
|
|
51
|
+
* the service is associated with.
|
|
52
|
+
*/
|
|
53
|
+
category?: V2Category;
|
|
54
|
+
/** Form the customer filled out when booking the service. */
|
|
55
|
+
form?: Form;
|
|
56
|
+
/**
|
|
57
|
+
* Payment options for booking the service.
|
|
58
|
+
* Learn more about *service payments*
|
|
59
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-payments) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments)).
|
|
60
|
+
*/
|
|
61
|
+
payment?: Payment;
|
|
62
|
+
/** Online booking settings. */
|
|
63
|
+
onlineBooking?: OnlineBooking;
|
|
64
|
+
/** Conferencing options for the service. */
|
|
65
|
+
conferencing?: Conferencing;
|
|
66
|
+
/**
|
|
67
|
+
* The locations this service is offered at. Read more about *service locations*
|
|
68
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-locations) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-locations)).
|
|
69
|
+
* @immutable
|
|
70
|
+
* @maxSize 500
|
|
71
|
+
*/
|
|
72
|
+
locations?: V2Location[];
|
|
73
|
+
/**
|
|
74
|
+
* _Policy_
|
|
75
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/booking-policies/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction))
|
|
76
|
+
* determining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.
|
|
77
|
+
*/
|
|
78
|
+
bookingPolicy?: BookingPolicy;
|
|
79
|
+
/**
|
|
80
|
+
* The service's *schedule*
|
|
81
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/schedules/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction)),
|
|
82
|
+
* which can be used to manage the service's *events*
|
|
83
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/events/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction)).
|
|
84
|
+
*/
|
|
85
|
+
schedule?: V2Schedule;
|
|
86
|
+
/**
|
|
87
|
+
* IDs of the *staff members*
|
|
88
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/staff-members/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/staff-members/introduction))
|
|
89
|
+
* providing the service. Available only for appointment-based services.
|
|
90
|
+
* @maxSize 220
|
|
91
|
+
* @format GUID
|
|
92
|
+
*/
|
|
93
|
+
staffMemberIds?: string[];
|
|
94
|
+
/**
|
|
95
|
+
* Information about which resources must be available so customers can book the service.
|
|
96
|
+
* For example, a meeting room or equipment.
|
|
97
|
+
* @maxSize 3
|
|
98
|
+
*/
|
|
99
|
+
serviceResources?: ServiceResource[];
|
|
100
|
+
/**
|
|
101
|
+
* A slug is the last part of the URL address that serves as a unique identifier of the service.
|
|
102
|
+
* The list of supported slugs includes past service names for backwards compatibility, and a custom slug if one was set by the business owner.
|
|
103
|
+
* @readonly
|
|
104
|
+
* @maxSize 100
|
|
105
|
+
*/
|
|
106
|
+
supportedSlugs?: Slug[];
|
|
107
|
+
/**
|
|
108
|
+
* Active slug for the service.
|
|
109
|
+
* Learn more about *service slugs*
|
|
110
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-slugs) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs)).
|
|
111
|
+
* @readonly
|
|
112
|
+
*/
|
|
113
|
+
mainSlug?: Slug;
|
|
114
|
+
/**
|
|
115
|
+
* URLs to various service-related pages, such as the calendar page and the booking page.
|
|
116
|
+
* @readonly
|
|
117
|
+
*/
|
|
118
|
+
urls?: URLs;
|
|
119
|
+
/** Extensions enabling users to save custom data related to the service. */
|
|
120
|
+
extendedFields?: ExtendedFields;
|
|
121
|
+
/** Custom SEO data for the service. */
|
|
122
|
+
seoData?: SeoSchema;
|
|
123
|
+
/**
|
|
124
|
+
* Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.
|
|
125
|
+
* @readonly
|
|
126
|
+
*/
|
|
127
|
+
createdDate?: Date | null;
|
|
128
|
+
/**
|
|
129
|
+
* Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.
|
|
130
|
+
* @readonly
|
|
131
|
+
*/
|
|
132
|
+
updatedDate?: Date | null;
|
|
133
|
+
/**
|
|
134
|
+
* Revision number, which increments by 1 each time the service is updated. To
|
|
135
|
+
* prevent conflicting changes, the existing revision must be used when updating
|
|
136
|
+
* a service.
|
|
137
|
+
* @readonly
|
|
138
|
+
*/
|
|
139
|
+
revision?: string | null;
|
|
140
|
+
}
|
|
141
|
+
declare enum ServiceType {
|
|
142
|
+
/** Appointment-based service. */
|
|
143
|
+
APPOINTMENT = "APPOINTMENT",
|
|
144
|
+
/** Class service. */
|
|
145
|
+
CLASS = "CLASS",
|
|
146
|
+
/** Course service. */
|
|
147
|
+
COURSE = "COURSE"
|
|
148
|
+
}
|
|
149
|
+
interface Media {
|
|
150
|
+
/**
|
|
151
|
+
* Media items associated with the service.
|
|
152
|
+
* @maxSize 100
|
|
153
|
+
*/
|
|
154
|
+
items?: MediaItem[];
|
|
155
|
+
/** Primary media associated with the service. */
|
|
156
|
+
mainMedia?: MediaItem;
|
|
157
|
+
/** Cover media associated with the service. */
|
|
158
|
+
coverMedia?: MediaItem;
|
|
159
|
+
}
|
|
160
|
+
interface MediaItem extends MediaItemItemOneOf {
|
|
161
|
+
/** Details of the image associated with the service, such as URL and size. */
|
|
162
|
+
image?: Image;
|
|
163
|
+
}
|
|
164
|
+
/** @oneof */
|
|
165
|
+
interface MediaItemItemOneOf {
|
|
166
|
+
/** Details of the image associated with the service, such as URL and size. */
|
|
167
|
+
image?: Image;
|
|
168
|
+
}
|
|
169
|
+
interface Image {
|
|
170
|
+
/**
|
|
171
|
+
* WixMedia image ID. (e.g. "4b3901ffcb8d7ad81a613779d92c9702.jpg")
|
|
172
|
+
* @maxLength 2048
|
|
173
|
+
*/
|
|
174
|
+
id?: string;
|
|
175
|
+
/**
|
|
176
|
+
* Image URL. (similar to image.id e.g. "4b3901ffcb8d7ad81a613779d92c9702.jpg")
|
|
177
|
+
* @maxLength 2048
|
|
178
|
+
*/
|
|
179
|
+
url?: string;
|
|
180
|
+
/** Original image height. */
|
|
181
|
+
height?: number;
|
|
182
|
+
/** Original image width. */
|
|
183
|
+
width?: number;
|
|
184
|
+
/**
|
|
185
|
+
* Image alt text.
|
|
186
|
+
* @maxLength 134061
|
|
187
|
+
*/
|
|
188
|
+
altText?: string | null;
|
|
189
|
+
/**
|
|
190
|
+
* Image file name.
|
|
191
|
+
* @readonly
|
|
192
|
+
* @maxLength 2048
|
|
193
|
+
*/
|
|
194
|
+
filename?: string | null;
|
|
195
|
+
}
|
|
196
|
+
interface V2Category {
|
|
197
|
+
/**
|
|
198
|
+
* Category ID.
|
|
199
|
+
* @format GUID
|
|
200
|
+
*/
|
|
201
|
+
id?: string;
|
|
202
|
+
/**
|
|
203
|
+
* Category name.
|
|
204
|
+
* @maxLength 500
|
|
205
|
+
* @readonly
|
|
206
|
+
*/
|
|
207
|
+
name?: string | null;
|
|
208
|
+
/**
|
|
209
|
+
* Order of a category within a category list.
|
|
210
|
+
* @readonly
|
|
211
|
+
*/
|
|
212
|
+
sortOrder?: number | null;
|
|
213
|
+
}
|
|
214
|
+
interface Form {
|
|
215
|
+
/**
|
|
216
|
+
* ID of the form associated with the service.
|
|
217
|
+
* The form information that you submit when booking includes contact details, participants, and other form fields set up for the service.
|
|
218
|
+
* You can manage the service booking form fields using the Bookings Forms API.
|
|
219
|
+
* @format GUID
|
|
220
|
+
*/
|
|
221
|
+
id?: string;
|
|
222
|
+
}
|
|
223
|
+
interface Payment extends PaymentRateOneOf {
|
|
224
|
+
/**
|
|
225
|
+
* The details for the fixed price of the service.
|
|
226
|
+
*
|
|
227
|
+
* Required when: `rateType` is `FIXED`
|
|
228
|
+
*/
|
|
229
|
+
fixed?: FixedPayment;
|
|
230
|
+
/**
|
|
231
|
+
* The details for the custom price of the service.
|
|
232
|
+
*
|
|
233
|
+
* Required when: `rateType` is `CUSTOM`
|
|
234
|
+
*/
|
|
235
|
+
custom?: CustomPayment;
|
|
236
|
+
/**
|
|
237
|
+
* The details for the varied pricing of the service.
|
|
238
|
+
* Read more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).
|
|
239
|
+
*
|
|
240
|
+
* Required when: `rateType` is `VARIED`
|
|
241
|
+
*/
|
|
242
|
+
varied?: VariedPayment;
|
|
243
|
+
/** The rate the customer is expected to pay for the service. */
|
|
244
|
+
rateType?: RateType;
|
|
245
|
+
/** The payment options a customer can use to pay for the service. */
|
|
246
|
+
options?: PaymentOptions;
|
|
247
|
+
/**
|
|
248
|
+
* IDs of pricing plans that can be used as payment for the service.
|
|
249
|
+
* @readonly
|
|
250
|
+
* @maxSize 75
|
|
251
|
+
* @format GUID
|
|
252
|
+
*/
|
|
253
|
+
pricingPlanIds?: string[];
|
|
254
|
+
}
|
|
255
|
+
/** @oneof */
|
|
256
|
+
interface PaymentRateOneOf {
|
|
257
|
+
/**
|
|
258
|
+
* The details for the fixed price of the service.
|
|
259
|
+
*
|
|
260
|
+
* Required when: `rateType` is `FIXED`
|
|
261
|
+
*/
|
|
262
|
+
fixed?: FixedPayment;
|
|
263
|
+
/**
|
|
264
|
+
* The details for the custom price of the service.
|
|
265
|
+
*
|
|
266
|
+
* Required when: `rateType` is `CUSTOM`
|
|
267
|
+
*/
|
|
268
|
+
custom?: CustomPayment;
|
|
269
|
+
/**
|
|
270
|
+
* The details for the varied pricing of the service.
|
|
271
|
+
* Read more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).
|
|
272
|
+
*
|
|
273
|
+
* Required when: `rateType` is `VARIED`
|
|
274
|
+
*/
|
|
275
|
+
varied?: VariedPayment;
|
|
276
|
+
}
|
|
277
|
+
declare enum RateType {
|
|
278
|
+
/** Unknown rate type. */
|
|
279
|
+
UNKNOWN_RATE_TYPE = "UNKNOWN_RATE_TYPE",
|
|
280
|
+
/** The service has a fixed price. */
|
|
281
|
+
FIXED = "FIXED",
|
|
282
|
+
/** The service has a custom price, expressed as a price description. */
|
|
283
|
+
CUSTOM = "CUSTOM",
|
|
284
|
+
/** This service is offered with a set of different prices based on different terms. */
|
|
285
|
+
VARIED = "VARIED",
|
|
286
|
+
/** This service is offered free of charge. */
|
|
287
|
+
NO_FEE = "NO_FEE"
|
|
288
|
+
}
|
|
289
|
+
interface FixedPayment {
|
|
290
|
+
/**
|
|
291
|
+
* The fixed price required to book the service.
|
|
292
|
+
*
|
|
293
|
+
* Required when: `rateType` is `FIXED`
|
|
294
|
+
*/
|
|
295
|
+
price?: Money;
|
|
296
|
+
/**
|
|
297
|
+
* The deposit price required to book the service.
|
|
298
|
+
*
|
|
299
|
+
* Required when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`
|
|
300
|
+
*/
|
|
301
|
+
deposit?: Money;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Money.
|
|
305
|
+
* Default format to use. Sufficiently compliant with majority of standards: w3c, ISO 4217, ISO 20022, ISO 8583:2003.
|
|
306
|
+
*/
|
|
307
|
+
interface Money {
|
|
308
|
+
/**
|
|
309
|
+
* Monetary amount. Decimal string with a period as a decimal separator (e.g., 3.99). Optionally, a single (-), to indicate that the amount is negative.
|
|
310
|
+
* @format DECIMAL_VALUE
|
|
311
|
+
* @decimalValue options { gt:0, maxScale:2 }
|
|
312
|
+
*/
|
|
313
|
+
value?: string;
|
|
314
|
+
/**
|
|
315
|
+
* Currency code. Must be valid ISO 4217 currency code (e.g., USD).
|
|
316
|
+
* @format CURRENCY
|
|
317
|
+
* @readonly
|
|
318
|
+
*/
|
|
319
|
+
currency?: string;
|
|
320
|
+
/**
|
|
321
|
+
* Monetary amount. Decimal string in local format (e.g., 1 000,30). Optionally, a single (-), to indicate that the amount is negative.
|
|
322
|
+
* @maxLength 50
|
|
323
|
+
*/
|
|
324
|
+
formattedValue?: string | null;
|
|
325
|
+
}
|
|
326
|
+
interface CustomPayment {
|
|
327
|
+
/**
|
|
328
|
+
* A custom description explaining to the customer how to pay for the service.
|
|
329
|
+
* @maxLength 50
|
|
330
|
+
*/
|
|
331
|
+
description?: string | null;
|
|
332
|
+
}
|
|
333
|
+
interface VariedPayment {
|
|
334
|
+
/** The default price for the service without any variants. It will also be used as the default price for any new variant. */
|
|
335
|
+
defaultPrice?: Money;
|
|
336
|
+
/**
|
|
337
|
+
* The deposit price required to book the service.
|
|
338
|
+
*
|
|
339
|
+
* Required when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`
|
|
340
|
+
*/
|
|
341
|
+
deposit?: Money;
|
|
342
|
+
/**
|
|
343
|
+
* The minimal price a customer may pay for this service, based on its variants.
|
|
344
|
+
* @readonly
|
|
345
|
+
*/
|
|
346
|
+
minPrice?: Money;
|
|
347
|
+
/**
|
|
348
|
+
* The maximum price a customer may pay for this service, based on its variants.
|
|
349
|
+
* @readonly
|
|
350
|
+
*/
|
|
351
|
+
maxPrice?: Money;
|
|
352
|
+
}
|
|
353
|
+
interface PaymentOptions {
|
|
354
|
+
/**
|
|
355
|
+
* Customers can pay for the service online.
|
|
356
|
+
* When `true`:
|
|
357
|
+
* + `rateType` must be either `FIXED` or `VARIED`.
|
|
358
|
+
* + `fixed.price` or `varied.default_price` must be specified respectively. Read more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).
|
|
359
|
+
*/
|
|
360
|
+
online?: boolean | null;
|
|
361
|
+
/** Customers can pay for the service in person. */
|
|
362
|
+
inPerson?: boolean | null;
|
|
363
|
+
/**
|
|
364
|
+
* This service requires a deposit to be made online in order to book it.
|
|
365
|
+
* When `true`:
|
|
366
|
+
* + `rateType` must be `VARIED` or `FIXED`.
|
|
367
|
+
* + A `deposit` must be specified.
|
|
368
|
+
*/
|
|
369
|
+
deposit?: boolean | null;
|
|
370
|
+
/** Customers can pay for the service using a pricing plan. */
|
|
371
|
+
pricingPlan?: boolean | null;
|
|
372
|
+
}
|
|
373
|
+
interface OnlineBooking {
|
|
374
|
+
/**
|
|
375
|
+
* Whether the service can be booked online.
|
|
376
|
+
* When set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.
|
|
377
|
+
* When set to `false`, customers cannot book the service online, and the service can only be paid for in person.
|
|
378
|
+
*/
|
|
379
|
+
enabled?: boolean | null;
|
|
380
|
+
/** Booking the service requires approval by the Wix user. */
|
|
381
|
+
requireManualApproval?: boolean | null;
|
|
382
|
+
/** Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`. */
|
|
383
|
+
allowMultipleRequests?: boolean | null;
|
|
384
|
+
}
|
|
385
|
+
interface Conferencing {
|
|
386
|
+
/** Whether a conference link is generated for the service's sessions. */
|
|
387
|
+
enabled?: boolean | null;
|
|
388
|
+
}
|
|
389
|
+
interface V2Location extends V2LocationOptionsOneOf {
|
|
390
|
+
/** Information about business locations. */
|
|
391
|
+
business?: BusinessLocationOptions;
|
|
392
|
+
/** Information about custom locations. */
|
|
393
|
+
custom?: CustomLocationOptions;
|
|
394
|
+
/**
|
|
395
|
+
* Location ID.
|
|
396
|
+
* @format GUID
|
|
397
|
+
* @readonly
|
|
398
|
+
*/
|
|
399
|
+
id?: string;
|
|
400
|
+
/**
|
|
401
|
+
* Location type.
|
|
402
|
+
*
|
|
403
|
+
* Default: `CUSTOM`
|
|
404
|
+
*/
|
|
405
|
+
type?: LocationTypeEnumLocationType;
|
|
406
|
+
/**
|
|
407
|
+
* Location address. Empty for `{"type": "CUSTOMER"}`.
|
|
408
|
+
* @readonly
|
|
409
|
+
*/
|
|
410
|
+
calculatedAddress?: CommonAddress;
|
|
411
|
+
}
|
|
412
|
+
/** @oneof */
|
|
413
|
+
interface V2LocationOptionsOneOf {
|
|
414
|
+
/** Information about business locations. */
|
|
415
|
+
business?: BusinessLocationOptions;
|
|
416
|
+
/** Information about custom locations. */
|
|
417
|
+
custom?: CustomLocationOptions;
|
|
418
|
+
}
|
|
419
|
+
declare enum LocationTypeEnumLocationType {
|
|
420
|
+
UNKNOWN_LOCATION_TYPE = "UNKNOWN_LOCATION_TYPE",
|
|
421
|
+
/**
|
|
422
|
+
* Location set by the business that is not a standard business *location*
|
|
423
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
|
|
424
|
+
*/
|
|
425
|
+
CUSTOM = "CUSTOM",
|
|
426
|
+
/**
|
|
427
|
+
* Business *location*
|
|
428
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
|
|
429
|
+
*/
|
|
430
|
+
BUSINESS = "BUSINESS",
|
|
431
|
+
/**
|
|
432
|
+
* The customer specifies any address when booking. Available only for
|
|
433
|
+
* appointment-based services.
|
|
434
|
+
*/
|
|
435
|
+
CUSTOMER = "CUSTOMER"
|
|
436
|
+
}
|
|
437
|
+
interface CommonAddress extends CommonAddressStreetOneOf {
|
|
438
|
+
/** Street name and number. */
|
|
439
|
+
streetAddress?: CommonStreetAddress;
|
|
440
|
+
/** @maxLength 255 */
|
|
441
|
+
addressLine?: string | null;
|
|
442
|
+
/**
|
|
443
|
+
* 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
|
|
444
|
+
* @format COUNTRY
|
|
445
|
+
*/
|
|
446
|
+
country?: string | null;
|
|
447
|
+
/**
|
|
448
|
+
* Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.
|
|
449
|
+
* @maxLength 255
|
|
450
|
+
*/
|
|
451
|
+
subdivision?: string | null;
|
|
452
|
+
/**
|
|
453
|
+
* City name.
|
|
454
|
+
* @maxLength 255
|
|
455
|
+
*/
|
|
456
|
+
city?: string | null;
|
|
457
|
+
/**
|
|
458
|
+
* Postal or zip code.
|
|
459
|
+
* @maxLength 255
|
|
460
|
+
*/
|
|
461
|
+
postalCode?: string | null;
|
|
462
|
+
/**
|
|
463
|
+
* Full address of the location.
|
|
464
|
+
* @maxLength 512
|
|
465
|
+
*/
|
|
466
|
+
formattedAddress?: string | null;
|
|
467
|
+
}
|
|
468
|
+
/** @oneof */
|
|
469
|
+
interface CommonAddressStreetOneOf {
|
|
470
|
+
/** Street name and number. */
|
|
471
|
+
streetAddress?: CommonStreetAddress;
|
|
472
|
+
/** @maxLength 255 */
|
|
473
|
+
addressLine?: string | null;
|
|
474
|
+
}
|
|
475
|
+
/** Street address. Includes street name, number, and apartment number in separate fields. */
|
|
476
|
+
interface CommonStreetAddress {
|
|
477
|
+
/**
|
|
478
|
+
* Street number.
|
|
479
|
+
* @maxLength 255
|
|
480
|
+
*/
|
|
481
|
+
number?: string;
|
|
482
|
+
/**
|
|
483
|
+
* Street name.
|
|
484
|
+
* @maxLength 255
|
|
485
|
+
*/
|
|
486
|
+
name?: string;
|
|
487
|
+
/**
|
|
488
|
+
* Apartment number.
|
|
489
|
+
* @maxLength 255
|
|
490
|
+
*/
|
|
491
|
+
apt?: string;
|
|
492
|
+
}
|
|
493
|
+
interface BusinessLocationOptions {
|
|
494
|
+
/**
|
|
495
|
+
* ID of the business *location*
|
|
496
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
|
|
497
|
+
* When setting a business location, specify only the location ID. Other location details are overwritten.
|
|
498
|
+
* @format GUID
|
|
499
|
+
*/
|
|
500
|
+
id?: string;
|
|
501
|
+
/**
|
|
502
|
+
* Business location name.
|
|
503
|
+
* @readonly
|
|
504
|
+
* @maxLength 150
|
|
505
|
+
*/
|
|
506
|
+
name?: string;
|
|
507
|
+
/**
|
|
508
|
+
* Whether this is the default location. There can only be a single default location per site.
|
|
509
|
+
* @readonly
|
|
510
|
+
*/
|
|
511
|
+
default?: boolean | null;
|
|
512
|
+
/**
|
|
513
|
+
* Business location address.
|
|
514
|
+
* @readonly
|
|
515
|
+
*/
|
|
516
|
+
address?: CommonAddress;
|
|
517
|
+
/**
|
|
518
|
+
* Business location email.
|
|
519
|
+
* @format EMAIL
|
|
520
|
+
* @readonly
|
|
521
|
+
*/
|
|
522
|
+
email?: string | null;
|
|
523
|
+
/**
|
|
524
|
+
* Business location phone.
|
|
525
|
+
* @format PHONE
|
|
526
|
+
* @readonly
|
|
527
|
+
*/
|
|
528
|
+
phone?: string | null;
|
|
529
|
+
}
|
|
530
|
+
interface CustomLocationOptions {
|
|
531
|
+
/**
|
|
532
|
+
* ID of the custom location.
|
|
533
|
+
* @format GUID
|
|
534
|
+
* @readonly
|
|
535
|
+
*/
|
|
536
|
+
id?: string;
|
|
537
|
+
/** Address of the custom location. */
|
|
538
|
+
address?: CommonAddress;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* `BookingPolicy` is the main entity of `BookingPolicyService` and specifies a set of rules for booking a service
|
|
542
|
+
* by visitors and members.
|
|
543
|
+
*
|
|
544
|
+
* Each `BookingPolicy` consists of a number of sub-policies. When the Bookings App is provisioned to a meta site then a
|
|
545
|
+
* default `BookingPolicy` will be created with defaults for each of these sub-policies. This also applies when a request
|
|
546
|
+
* is received to create a new `BookingPolicy` and one or more of these sub-policies are not provided.
|
|
547
|
+
*
|
|
548
|
+
* Sub-policies are defined in separate objects as specified below.
|
|
549
|
+
*
|
|
550
|
+
* - The `LimitEarlyBookingPolicy` object defines the policy for limiting early bookings.
|
|
551
|
+
* - The `LimitLateBookingPolicy` object defines the policy for limiting late bookings.
|
|
552
|
+
* - The `BookAfterStartPolicy` object defines the policy for booking after the start of the schedule.
|
|
553
|
+
* - The `CancellationPolicy` object defines the policy for canceling a booked entity.
|
|
554
|
+
* - The `ReschedulePolicy` object defines the policy for rescheduling booked entity.
|
|
555
|
+
* - The `WaitlistPolicy` object defines the policy for a waitlist.
|
|
556
|
+
* - The `ParticipantsPolicy` object defines the policy regarding the participants per booking.
|
|
557
|
+
* - The `ResourcesPolicy` object defines the policy regarding the resources per booking.
|
|
558
|
+
* - The `CancellationFeePolicy` object defines the policy regarding cancellation fees.
|
|
559
|
+
* - The `SaveCreditCardPolicy` object defines the policy for saving credit card details.
|
|
560
|
+
*
|
|
561
|
+
* By default each sub-policy is disabled. A more detailed specification of the default settings of each sub-policy
|
|
562
|
+
* can be found in the description of the corresponding object.
|
|
563
|
+
*
|
|
564
|
+
* Partial updates are supported on the main entity level, however in order to update a sub-policy the client needs to provide the whole sub-policy object.
|
|
565
|
+
*/
|
|
566
|
+
interface BookingPolicy {
|
|
567
|
+
/**
|
|
568
|
+
* The ID to the policy for the booking.
|
|
569
|
+
* @format GUID
|
|
570
|
+
*/
|
|
571
|
+
id?: string;
|
|
572
|
+
/**
|
|
573
|
+
* Date and time the policy was created.
|
|
574
|
+
* @readonly
|
|
575
|
+
*/
|
|
576
|
+
createdDate?: Date | null;
|
|
577
|
+
/**
|
|
578
|
+
* Date and time the policy was updated.
|
|
579
|
+
* @readonly
|
|
580
|
+
*/
|
|
581
|
+
updatedDate?: Date | null;
|
|
582
|
+
/**
|
|
583
|
+
* Name of the policy.
|
|
584
|
+
* @maxLength 400
|
|
585
|
+
* @readonly
|
|
586
|
+
*/
|
|
587
|
+
name?: string | null;
|
|
588
|
+
/**
|
|
589
|
+
* Custom description for the policy. This policy is displayed to the participant.
|
|
590
|
+
* @readonly
|
|
591
|
+
*/
|
|
592
|
+
customPolicyDescription?: PolicyDescription;
|
|
593
|
+
/**
|
|
594
|
+
* Whether the policy is the default for the meta site.
|
|
595
|
+
* @readonly
|
|
596
|
+
*/
|
|
597
|
+
default?: boolean | null;
|
|
598
|
+
/**
|
|
599
|
+
* Policy for limiting early bookings.
|
|
600
|
+
* @readonly
|
|
601
|
+
*/
|
|
602
|
+
limitEarlyBookingPolicy?: LimitEarlyBookingPolicy;
|
|
603
|
+
/**
|
|
604
|
+
* Policy for limiting late bookings.
|
|
605
|
+
* @readonly
|
|
606
|
+
*/
|
|
607
|
+
limitLateBookingPolicy?: LimitLateBookingPolicy;
|
|
608
|
+
/**
|
|
609
|
+
* Policy on booking an entity after the start of the schedule.
|
|
610
|
+
* @readonly
|
|
611
|
+
*/
|
|
612
|
+
bookAfterStartPolicy?: BookAfterStartPolicy;
|
|
613
|
+
/**
|
|
614
|
+
* Policy for canceling a booked entity.
|
|
615
|
+
* @readonly
|
|
616
|
+
*/
|
|
617
|
+
cancellationPolicy?: CancellationPolicy;
|
|
618
|
+
/**
|
|
619
|
+
* Policy for rescheduling a booked entity.
|
|
620
|
+
* @readonly
|
|
621
|
+
*/
|
|
622
|
+
reschedulePolicy?: ReschedulePolicy;
|
|
623
|
+
/**
|
|
624
|
+
* Waitlist policy for the service.
|
|
625
|
+
* @readonly
|
|
626
|
+
*/
|
|
627
|
+
waitlistPolicy?: WaitlistPolicy;
|
|
628
|
+
/**
|
|
629
|
+
* Policy regarding the participants per booking.
|
|
630
|
+
* @readonly
|
|
631
|
+
*/
|
|
632
|
+
participantsPolicy?: ParticipantsPolicy;
|
|
633
|
+
/**
|
|
634
|
+
* Policy for allocating resources.
|
|
635
|
+
* @readonly
|
|
636
|
+
*/
|
|
637
|
+
resourcesPolicy?: ResourcesPolicy;
|
|
638
|
+
/**
|
|
639
|
+
* Rules for cancellation fees.
|
|
640
|
+
* @readonly
|
|
641
|
+
*/
|
|
642
|
+
cancellationFeePolicy?: CancellationFeePolicy;
|
|
643
|
+
/**
|
|
644
|
+
* Rule for saving credit card.
|
|
645
|
+
* @readonly
|
|
646
|
+
*/
|
|
647
|
+
saveCreditCardPolicy?: SaveCreditCardPolicy;
|
|
648
|
+
}
|
|
649
|
+
/** A description of the policy to display to participants. */
|
|
650
|
+
interface PolicyDescription {
|
|
651
|
+
/**
|
|
652
|
+
* Whether the description should be displayed. If `true`, the description is displayed.
|
|
653
|
+
*
|
|
654
|
+
* Default: `false`
|
|
655
|
+
*/
|
|
656
|
+
enabled?: boolean;
|
|
657
|
+
/**
|
|
658
|
+
* The description to display.
|
|
659
|
+
*
|
|
660
|
+
* Default: Empty
|
|
661
|
+
* Max length: 2500 characters
|
|
662
|
+
* @maxLength 2500
|
|
663
|
+
*/
|
|
664
|
+
description?: string;
|
|
665
|
+
}
|
|
666
|
+
/** The policy for limiting early bookings. */
|
|
667
|
+
interface LimitEarlyBookingPolicy {
|
|
668
|
+
/**
|
|
669
|
+
* Whether there is a limit on how early a customer
|
|
670
|
+
* can book. When `false`, there is no limit on the earliest
|
|
671
|
+
* booking time and customers can book in advance, as early as they like.
|
|
672
|
+
*
|
|
673
|
+
* Default: `false`
|
|
674
|
+
*/
|
|
675
|
+
enabled?: boolean;
|
|
676
|
+
/**
|
|
677
|
+
* Maximum number of minutes before the start of the session that a booking can be made. This value must be greater
|
|
678
|
+
* than `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.
|
|
679
|
+
*
|
|
680
|
+
* Default: 10080 minutes (7 days)
|
|
681
|
+
* Min: 1 minute
|
|
682
|
+
* @min 1
|
|
683
|
+
*/
|
|
684
|
+
earliestBookingInMinutes?: number;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* The policy for limiting late bookings.
|
|
688
|
+
*
|
|
689
|
+
* This policy and the `BookAfterStartPolicy` policy cannot be enabled at the same time. So if this policy
|
|
690
|
+
* is enabled, `BookAfterStartPolicy` must be disabled.
|
|
691
|
+
*/
|
|
692
|
+
interface LimitLateBookingPolicy {
|
|
693
|
+
/**
|
|
694
|
+
* Whether there is a limit on how late a customer
|
|
695
|
+
* can book. When `false`, there is no limit on the latest
|
|
696
|
+
* booking time and customers can book up to the last minute.
|
|
697
|
+
*
|
|
698
|
+
* Default: `false`
|
|
699
|
+
*/
|
|
700
|
+
enabled?: boolean;
|
|
701
|
+
/**
|
|
702
|
+
* Minimum number of minutes before the start of the session that a booking can be made.
|
|
703
|
+
* For a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.
|
|
704
|
+
* This value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.
|
|
705
|
+
*
|
|
706
|
+
* Default: 1440 minutes (1 day)
|
|
707
|
+
* Min: 1 minute
|
|
708
|
+
* @min 1
|
|
709
|
+
*/
|
|
710
|
+
latestBookingInMinutes?: number;
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* The policy for whether a session can be booked after the start of the schedule.
|
|
714
|
+
* This policy and `LimitLateBookingPolicy` cannot be enabled at the same time. So if this policy
|
|
715
|
+
* is enabled, the `LimitLateBookingPolicy` policy must be disabled.
|
|
716
|
+
*/
|
|
717
|
+
interface BookAfterStartPolicy {
|
|
718
|
+
/**
|
|
719
|
+
* Whether booking is allowed after the start of the schedule. When `true`,
|
|
720
|
+
* customers can book after the start of the schedule.
|
|
721
|
+
*
|
|
722
|
+
* Default: `false`
|
|
723
|
+
*/
|
|
724
|
+
enabled?: boolean;
|
|
725
|
+
}
|
|
726
|
+
/** The policy for canceling a booked session. */
|
|
727
|
+
interface CancellationPolicy {
|
|
728
|
+
/**
|
|
729
|
+
* Whether canceling a booking is allowed. When `true`, customers
|
|
730
|
+
* can cancel the booking.
|
|
731
|
+
*
|
|
732
|
+
* Default: `false`
|
|
733
|
+
*/
|
|
734
|
+
enabled?: boolean;
|
|
735
|
+
/**
|
|
736
|
+
* Whether there is a limit on the latest cancellation time. When `true`,
|
|
737
|
+
* a time limit is enforced.
|
|
738
|
+
*
|
|
739
|
+
* Default: `false`
|
|
740
|
+
*/
|
|
741
|
+
limitLatestCancellation?: boolean;
|
|
742
|
+
/**
|
|
743
|
+
* Minimum number of minutes before the start of the booked session that the booking can be canceled.
|
|
744
|
+
*
|
|
745
|
+
* Default: 1440 minutes (1 day)
|
|
746
|
+
* Min: 1 minute
|
|
747
|
+
* @min 1
|
|
748
|
+
*/
|
|
749
|
+
latestCancellationInMinutes?: number;
|
|
750
|
+
}
|
|
751
|
+
/** The policy for rescheduling a booked session. */
|
|
752
|
+
interface ReschedulePolicy {
|
|
753
|
+
/**
|
|
754
|
+
* Whether rescheduling a booking is allowed. When `true`, customers
|
|
755
|
+
* can reschedule the booking.
|
|
756
|
+
*
|
|
757
|
+
* Default: `false`
|
|
758
|
+
*/
|
|
759
|
+
enabled?: boolean;
|
|
760
|
+
/**
|
|
761
|
+
* Whether there is a limit on the latest reschedule time. When `true`,
|
|
762
|
+
* a time limit is enforced.
|
|
763
|
+
*
|
|
764
|
+
* Default: `false`
|
|
765
|
+
*/
|
|
766
|
+
limitLatestReschedule?: boolean;
|
|
767
|
+
/**
|
|
768
|
+
* Minimum number of minutes before the start of the booked session that the booking can be rescheduled.
|
|
769
|
+
*
|
|
770
|
+
* Default: 1440 minutes (1 day)
|
|
771
|
+
* Min: 1 minute
|
|
772
|
+
* @min 1
|
|
773
|
+
*/
|
|
774
|
+
latestRescheduleInMinutes?: number;
|
|
775
|
+
}
|
|
776
|
+
/** The policy for the waitlist. */
|
|
777
|
+
interface WaitlistPolicy {
|
|
778
|
+
/**
|
|
779
|
+
* Whether the session has a waitlist. If `true`, there is a waitlist.
|
|
780
|
+
*
|
|
781
|
+
* Default: `false`
|
|
782
|
+
*/
|
|
783
|
+
enabled?: boolean;
|
|
784
|
+
/**
|
|
785
|
+
* Number of spots available in the waitlist.
|
|
786
|
+
*
|
|
787
|
+
* Default: 10 spots
|
|
788
|
+
* Min: 1 spot
|
|
789
|
+
* @min 1
|
|
790
|
+
*/
|
|
791
|
+
capacity?: number;
|
|
792
|
+
/**
|
|
793
|
+
* Amount of time a participant is given to book, once notified that a spot is available.
|
|
794
|
+
*
|
|
795
|
+
* Default: 10 minutes
|
|
796
|
+
* Min: 1 spot
|
|
797
|
+
* @min 1
|
|
798
|
+
*/
|
|
799
|
+
reservationTimeInMinutes?: number;
|
|
800
|
+
}
|
|
801
|
+
/** The policy for the maximum number of participants per booking. */
|
|
802
|
+
interface ParticipantsPolicy {
|
|
803
|
+
/**
|
|
804
|
+
* Maximum number of participants allowed.
|
|
805
|
+
*
|
|
806
|
+
* Default: 1 participant
|
|
807
|
+
* Min: 1 participant
|
|
808
|
+
* @min 1
|
|
809
|
+
*/
|
|
810
|
+
maxParticipantsPerBooking?: number;
|
|
811
|
+
}
|
|
812
|
+
/** The policy regarding the allocation of resources (e.g. staff members). */
|
|
813
|
+
interface ResourcesPolicy {
|
|
814
|
+
/**
|
|
815
|
+
* `true` if this policy is enabled, `false` otherwise.
|
|
816
|
+
* When `false` then the client must always select a resource when booking an appointment.
|
|
817
|
+
*/
|
|
818
|
+
enabled?: boolean;
|
|
819
|
+
/**
|
|
820
|
+
* `true`, if it is allowed to automatically assign a resource when booking an appointment,
|
|
821
|
+
* `false`, if the client must always select a resource.
|
|
822
|
+
*
|
|
823
|
+
* Default: `false`
|
|
824
|
+
*/
|
|
825
|
+
autoAssignAllowed?: boolean;
|
|
826
|
+
}
|
|
827
|
+
interface CancellationFeePolicy {
|
|
828
|
+
/**
|
|
829
|
+
* Whether canceling a booking will result in a cancellation fee
|
|
830
|
+
*
|
|
831
|
+
* Default: `false`
|
|
832
|
+
*/
|
|
833
|
+
enabled?: boolean;
|
|
834
|
+
/**
|
|
835
|
+
* Cancellation windows describing the time of cancellation and the fee to charge.
|
|
836
|
+
* @maxSize 2
|
|
837
|
+
*/
|
|
838
|
+
cancellationWindows?: CancellationWindow[];
|
|
839
|
+
/**
|
|
840
|
+
* Whether the cancellation fee should not be automatically collected when customer cancels the booking.
|
|
841
|
+
*
|
|
842
|
+
* Default: `true`
|
|
843
|
+
*/
|
|
844
|
+
autoCollectFeeEnabled?: boolean | null;
|
|
845
|
+
}
|
|
846
|
+
interface CancellationWindow extends CancellationWindowFeeOneOf {
|
|
847
|
+
/** Amount to be charged as a cancellation fee. */
|
|
848
|
+
amount?: Money;
|
|
849
|
+
/**
|
|
850
|
+
* Percentage of the original price to be charged as a cancellation fee.
|
|
851
|
+
* @decimalValue options { gt:0, lte:100, maxScale:2 }
|
|
852
|
+
*/
|
|
853
|
+
percentage?: string;
|
|
854
|
+
/**
|
|
855
|
+
* The fee will be applied if the booked session starts within this start time in minutes.
|
|
856
|
+
* @min 1
|
|
857
|
+
*/
|
|
858
|
+
startInMinutes?: number | null;
|
|
859
|
+
}
|
|
860
|
+
/** @oneof */
|
|
861
|
+
interface CancellationWindowFeeOneOf {
|
|
862
|
+
/** Amount to be charged as a cancellation fee. */
|
|
863
|
+
amount?: Money;
|
|
864
|
+
/**
|
|
865
|
+
* Percentage of the original price to be charged as a cancellation fee.
|
|
866
|
+
* @decimalValue options { gt:0, lte:100, maxScale:2 }
|
|
867
|
+
*/
|
|
868
|
+
percentage?: string;
|
|
869
|
+
}
|
|
870
|
+
interface SaveCreditCardPolicy {
|
|
871
|
+
/** Default: `false` */
|
|
872
|
+
enabled?: boolean;
|
|
873
|
+
}
|
|
874
|
+
interface V2Schedule {
|
|
875
|
+
/**
|
|
876
|
+
* ID of the *schedule*
|
|
877
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/schedules/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction))
|
|
878
|
+
* to which the service's events belong.
|
|
879
|
+
* @format GUID
|
|
880
|
+
* @readonly
|
|
881
|
+
*/
|
|
882
|
+
id?: string | null;
|
|
883
|
+
/**
|
|
884
|
+
* Start time of the first session in the schedule. For courses only.
|
|
885
|
+
* @readonly
|
|
886
|
+
*/
|
|
887
|
+
firstSessionStart?: Date | null;
|
|
888
|
+
/**
|
|
889
|
+
* End time of the last session in the schedule. For courses only.
|
|
890
|
+
* @readonly
|
|
891
|
+
*/
|
|
892
|
+
lastSessionEnd?: Date | null;
|
|
893
|
+
/** Limitations affecting the service availability. */
|
|
894
|
+
availabilityConstraints?: V2AvailabilityConstraints;
|
|
895
|
+
}
|
|
896
|
+
interface V2AvailabilityConstraints {
|
|
897
|
+
/**
|
|
898
|
+
* Calculated list of all supported session durations for the service. For
|
|
899
|
+
* appointment-based services without varied pricing based on session length, it
|
|
900
|
+
* matches the single value in the `sessionDurations` array. For appointment-based
|
|
901
|
+
* services with varied pricing based on session length, it includes session
|
|
902
|
+
* durations for all *variants*
|
|
903
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)),
|
|
904
|
+
* while ignoring `sessionDurations`.
|
|
905
|
+
* For courses and classes, it includes durations for all future
|
|
906
|
+
* recurring sessions but excludes durations for one-off or past recurring sessions.
|
|
907
|
+
* @readonly
|
|
908
|
+
* @maxSize 50
|
|
909
|
+
*/
|
|
910
|
+
durations?: Duration[];
|
|
911
|
+
/**
|
|
912
|
+
* List of supported session durations in minutes. Specify `sessionDurations` only
|
|
913
|
+
* for appointment-based services. Do not specify it for classes or courses. Note that
|
|
914
|
+
* session durations for appointment-based services with varied pricing based on
|
|
915
|
+
* session length are retrieved from service *variants*
|
|
916
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)),
|
|
917
|
+
* while this array is ignored.
|
|
918
|
+
*
|
|
919
|
+
* Min: `1` minute
|
|
920
|
+
* Max: `44639` minutes (30 days, 23 hours, and 59 minutes)
|
|
921
|
+
* @min 1
|
|
922
|
+
* @max 44639
|
|
923
|
+
* @maxSize 50
|
|
924
|
+
*/
|
|
925
|
+
sessionDurations?: number[];
|
|
926
|
+
/**
|
|
927
|
+
* The number of minutes between the end of a session and the start of the next.
|
|
928
|
+
*
|
|
929
|
+
*
|
|
930
|
+
* Min: `0` minutes
|
|
931
|
+
* Max: `720` minutes
|
|
932
|
+
* @max 720
|
|
933
|
+
*/
|
|
934
|
+
timeBetweenSessions?: number;
|
|
935
|
+
}
|
|
936
|
+
interface Duration {
|
|
937
|
+
/**
|
|
938
|
+
* The duration of the service in minutes.
|
|
939
|
+
*
|
|
940
|
+
* Min: `1` minute
|
|
941
|
+
* Max: `44639` minutes (30 days, 23 hours, and 59 minutes)
|
|
942
|
+
* @min 1
|
|
943
|
+
* @max 44639
|
|
944
|
+
*/
|
|
945
|
+
minutes?: number;
|
|
946
|
+
}
|
|
947
|
+
interface ServiceResource extends ServiceResourceSelectionOneOf {
|
|
948
|
+
/**
|
|
949
|
+
* Details about the required *resource type*
|
|
950
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resource-types/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resource-types-v2/introduction)).
|
|
951
|
+
*/
|
|
952
|
+
resourceType?: ResourceType;
|
|
953
|
+
}
|
|
954
|
+
/** @oneof */
|
|
955
|
+
interface ServiceResourceSelectionOneOf {
|
|
956
|
+
}
|
|
957
|
+
interface ResourceType {
|
|
958
|
+
/**
|
|
959
|
+
* The type of the resource.
|
|
960
|
+
* @format GUID
|
|
961
|
+
*/
|
|
962
|
+
id?: string | null;
|
|
963
|
+
/**
|
|
964
|
+
* The name of the resource type.
|
|
965
|
+
* @readonly
|
|
966
|
+
* @maxLength 40
|
|
967
|
+
* @minLength 1
|
|
968
|
+
*/
|
|
969
|
+
name?: string | null;
|
|
970
|
+
}
|
|
971
|
+
interface Slug {
|
|
972
|
+
/**
|
|
973
|
+
* The unique part of service's URL that identifies the service's information page. For example, `service-1` in `https:/example.com/services/service-1`.
|
|
974
|
+
* @maxLength 500
|
|
975
|
+
*/
|
|
976
|
+
name?: string;
|
|
977
|
+
/**
|
|
978
|
+
* Whether the slug was generated or customized. If `true`, the slug was customized manually by the business owner. Otherwise, the slug was automatically generated from the service name.
|
|
979
|
+
* @readonly
|
|
980
|
+
*/
|
|
981
|
+
custom?: boolean | null;
|
|
982
|
+
/**
|
|
983
|
+
* Date and time the slug was created. This is a system field.
|
|
984
|
+
* @readonly
|
|
985
|
+
*/
|
|
986
|
+
createdDate?: Date | null;
|
|
987
|
+
}
|
|
988
|
+
interface URLs {
|
|
989
|
+
/**
|
|
990
|
+
* The URL for the service page.
|
|
991
|
+
* @readonly
|
|
992
|
+
*/
|
|
993
|
+
servicePage?: PageUrlV2;
|
|
994
|
+
/**
|
|
995
|
+
* The URL for the booking entry point. It can be either to the calendar or to the service page.
|
|
996
|
+
* @readonly
|
|
997
|
+
*/
|
|
998
|
+
bookingPage?: PageUrlV2;
|
|
999
|
+
/**
|
|
1000
|
+
* The URL for the calendar. Can be empty if no calendar exists.
|
|
1001
|
+
* @readonly
|
|
1002
|
+
*/
|
|
1003
|
+
calendarPage?: PageUrlV2;
|
|
1004
|
+
}
|
|
1005
|
+
interface PageUrlV2 {
|
|
1006
|
+
/**
|
|
1007
|
+
* The relative path for the page within the site. For example, `/product-page/a-product`.
|
|
1008
|
+
* @maxLength 2048
|
|
1009
|
+
*/
|
|
1010
|
+
relativePath?: string;
|
|
1011
|
+
/**
|
|
1012
|
+
* The page's full URL. For example, `https://mysite.com/product-page/a-product`.
|
|
1013
|
+
* @maxLength 2048
|
|
1014
|
+
*/
|
|
1015
|
+
url?: string | null;
|
|
1016
|
+
}
|
|
1017
|
+
interface ExtendedFields {
|
|
1018
|
+
/**
|
|
1019
|
+
* Extended field data. Each key corresponds to the namespace of the app that created the extended fields.
|
|
1020
|
+
* The value of each key is structured according to the schema defined when the extended fields were configured.
|
|
1021
|
+
*
|
|
1022
|
+
* You can only access fields for which you have the appropriate permissions.
|
|
1023
|
+
*
|
|
1024
|
+
* Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).
|
|
1025
|
+
*/
|
|
1026
|
+
namespaces?: Record<string, Record<string, any>>;
|
|
1027
|
+
}
|
|
1028
|
+
/**
|
|
1029
|
+
* The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
|
|
1030
|
+
* The search engines use this information for ranking purposes, or to display snippets in the search results.
|
|
1031
|
+
* This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.
|
|
1032
|
+
*/
|
|
1033
|
+
interface SeoSchema {
|
|
1034
|
+
/** SEO tag information. */
|
|
1035
|
+
tags?: Tag[];
|
|
1036
|
+
/** SEO general settings. */
|
|
1037
|
+
settings?: Settings;
|
|
1038
|
+
}
|
|
1039
|
+
interface Keyword {
|
|
1040
|
+
/** Keyword value. */
|
|
1041
|
+
term?: string;
|
|
1042
|
+
/** Whether the keyword is the main focus keyword. */
|
|
1043
|
+
isMain?: boolean;
|
|
1044
|
+
/**
|
|
1045
|
+
* The source that added the keyword terms to the SEO settings.
|
|
1046
|
+
* @maxLength 1000
|
|
1047
|
+
*/
|
|
1048
|
+
origin?: string | null;
|
|
1049
|
+
}
|
|
1050
|
+
interface Tag {
|
|
1051
|
+
/**
|
|
1052
|
+
* SEO tag type.
|
|
1053
|
+
*
|
|
1054
|
+
*
|
|
1055
|
+
* Supported values: `title`, `meta`, `script`, `link`.
|
|
1056
|
+
*/
|
|
1057
|
+
type?: string;
|
|
1058
|
+
/**
|
|
1059
|
+
* A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
|
|
1060
|
+
* For example: `{"name": "description", "content": "the description itself"}`.
|
|
1061
|
+
*/
|
|
1062
|
+
props?: Record<string, any> | null;
|
|
1063
|
+
/** SEO tag meta data. For example, `{"height": 300, "width": 240}`. */
|
|
1064
|
+
meta?: Record<string, any> | null;
|
|
1065
|
+
/** SEO tag inner content. For example, `<title> inner content </title>`. */
|
|
1066
|
+
children?: string;
|
|
1067
|
+
/** Whether the tag is a custom tag. */
|
|
1068
|
+
custom?: boolean;
|
|
1069
|
+
/** Whether the tag is disabled. */
|
|
1070
|
+
disabled?: boolean;
|
|
1071
|
+
}
|
|
1072
|
+
interface Settings {
|
|
1073
|
+
/**
|
|
1074
|
+
* Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.
|
|
1075
|
+
*
|
|
1076
|
+
*
|
|
1077
|
+
* Default: `false` (Auto Redirect is enabled.)
|
|
1078
|
+
*/
|
|
1079
|
+
preventAutoRedirect?: boolean;
|
|
1080
|
+
/**
|
|
1081
|
+
* User-selected keyword terms for a specific page.
|
|
1082
|
+
* @maxSize 5
|
|
1083
|
+
*/
|
|
1084
|
+
keywords?: Keyword[];
|
|
1085
|
+
}
|
|
1086
|
+
interface CreateServiceRequest {
|
|
1087
|
+
/** Service to create. */
|
|
1088
|
+
service: Service;
|
|
1089
|
+
}
|
|
1090
|
+
interface CreateServiceResponse {
|
|
1091
|
+
/** Created service. */
|
|
1092
|
+
service?: Service;
|
|
1093
|
+
}
|
|
1094
|
+
interface BulkServiceResult {
|
|
1095
|
+
/** Update metadata. */
|
|
1096
|
+
itemMetadata?: ItemMetadata;
|
|
1097
|
+
/** Updated service. */
|
|
1098
|
+
item?: Service;
|
|
1099
|
+
}
|
|
1100
|
+
interface ItemMetadata {
|
|
1101
|
+
/**
|
|
1102
|
+
* Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).
|
|
1103
|
+
* @format GUID
|
|
1104
|
+
*/
|
|
1105
|
+
id?: string | null;
|
|
1106
|
+
/** Index of the item within the request array. Allows for correlation between request and response items. */
|
|
1107
|
+
originalIndex?: number;
|
|
1108
|
+
/** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
|
|
1109
|
+
success?: boolean;
|
|
1110
|
+
/** Details about the error in case of failure. */
|
|
1111
|
+
error?: ApplicationError;
|
|
1112
|
+
}
|
|
1113
|
+
interface ApplicationError {
|
|
1114
|
+
/** Error code. */
|
|
1115
|
+
code?: string;
|
|
1116
|
+
/** Description of the error. */
|
|
1117
|
+
description?: string;
|
|
1118
|
+
/** Data related to the error. */
|
|
1119
|
+
data?: Record<string, any> | null;
|
|
1120
|
+
}
|
|
1121
|
+
interface BulkActionMetadata {
|
|
1122
|
+
/** Number of items that were successfully processed. */
|
|
1123
|
+
totalSuccesses?: number;
|
|
1124
|
+
/** Number of items that couldn't be processed. */
|
|
1125
|
+
totalFailures?: number;
|
|
1126
|
+
/** Number of failures without details because detailed failure threshold was exceeded. */
|
|
1127
|
+
undetailedFailures?: number;
|
|
1128
|
+
}
|
|
1129
|
+
interface GetServiceRequest {
|
|
1130
|
+
/**
|
|
1131
|
+
* ID of the service to retrieve.
|
|
1132
|
+
* @format GUID
|
|
1133
|
+
*/
|
|
1134
|
+
serviceId: string;
|
|
1135
|
+
}
|
|
1136
|
+
interface GetServiceResponse {
|
|
1137
|
+
/** Retrieved service. */
|
|
1138
|
+
service?: Service;
|
|
1139
|
+
}
|
|
1140
|
+
interface UpdateServiceRequest {
|
|
1141
|
+
/** Service to update. */
|
|
1142
|
+
service: Service;
|
|
1143
|
+
}
|
|
1144
|
+
interface UpdateServiceResponse {
|
|
1145
|
+
/** Updated service. */
|
|
1146
|
+
service?: Service;
|
|
1147
|
+
}
|
|
1148
|
+
interface BulkUpdateServicesRequest {
|
|
1149
|
+
/**
|
|
1150
|
+
* Services to update.
|
|
1151
|
+
* @maxSize 100
|
|
1152
|
+
*/
|
|
1153
|
+
services?: MaskedService[];
|
|
1154
|
+
/** Whether to include the updated services in the response. Default: `false` */
|
|
1155
|
+
returnEntity?: boolean;
|
|
1156
|
+
}
|
|
1157
|
+
interface MaskedService {
|
|
1158
|
+
/** Service to update. */
|
|
1159
|
+
service?: Service;
|
|
1160
|
+
/** Explicit list of fields to update. */
|
|
1161
|
+
mask?: string[];
|
|
1162
|
+
}
|
|
1163
|
+
interface BulkUpdateServicesResponse {
|
|
1164
|
+
/** The result of each service update. */
|
|
1165
|
+
results?: BulkServiceResult[];
|
|
1166
|
+
/** Update statistics. */
|
|
1167
|
+
bulkActionMetadata?: BulkActionMetadata;
|
|
1168
|
+
}
|
|
1169
|
+
interface BulkUpdateServicesByFilterRequest {
|
|
1170
|
+
/** Filter to identify the services to update. */
|
|
1171
|
+
filter: Record<string, any> | null;
|
|
1172
|
+
/** Service to update. */
|
|
1173
|
+
service: Service;
|
|
1174
|
+
}
|
|
1175
|
+
interface BulkUpdateServicesByFilterResponse {
|
|
1176
|
+
/**
|
|
1177
|
+
* ID of the service update job.
|
|
1178
|
+
*
|
|
1179
|
+
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.
|
|
1180
|
+
* @format GUID
|
|
1181
|
+
*/
|
|
1182
|
+
jobId?: string;
|
|
1183
|
+
}
|
|
1184
|
+
interface DeleteServiceRequest {
|
|
1185
|
+
/**
|
|
1186
|
+
* ID of the service to delete.
|
|
1187
|
+
* @format GUID
|
|
1188
|
+
*/
|
|
1189
|
+
serviceId: string;
|
|
1190
|
+
/**
|
|
1191
|
+
* Whether to preserve future sessions with participants.
|
|
1192
|
+
*
|
|
1193
|
+
* Default: `false`
|
|
1194
|
+
*/
|
|
1195
|
+
preserveFutureSessionsWithParticipants?: boolean;
|
|
1196
|
+
/**
|
|
1197
|
+
* Whether to notify participants about the change and an optional
|
|
1198
|
+
* custom message.
|
|
1199
|
+
*/
|
|
1200
|
+
participantNotification?: ParticipantNotification;
|
|
1201
|
+
}
|
|
1202
|
+
interface ParticipantNotification {
|
|
1203
|
+
/**
|
|
1204
|
+
* Whether to send the message about the changes to the customer.
|
|
1205
|
+
*
|
|
1206
|
+
* Default: `false`
|
|
1207
|
+
*/
|
|
1208
|
+
notifyParticipants?: boolean | null;
|
|
1209
|
+
/**
|
|
1210
|
+
* Custom message to send to the participants about the changes to the booking.
|
|
1211
|
+
* @maxLength 2000
|
|
1212
|
+
*/
|
|
1213
|
+
message?: string | null;
|
|
1214
|
+
}
|
|
1215
|
+
interface DeleteServiceResponse {
|
|
1216
|
+
}
|
|
1217
|
+
interface BulkDeleteServicesRequest {
|
|
1218
|
+
/**
|
|
1219
|
+
* IDs of the services to delete.
|
|
1220
|
+
* @format GUID
|
|
1221
|
+
* @maxSize 100
|
|
1222
|
+
*/
|
|
1223
|
+
ids: string[];
|
|
1224
|
+
/**
|
|
1225
|
+
* Whether to preserve future sessions with participants.
|
|
1226
|
+
*
|
|
1227
|
+
* Default: `false`.
|
|
1228
|
+
*/
|
|
1229
|
+
preserveFutureSessionsWithParticipants?: boolean;
|
|
1230
|
+
/**
|
|
1231
|
+
* Whether to notify participants about the change and an optional
|
|
1232
|
+
* custom message.
|
|
1233
|
+
*/
|
|
1234
|
+
participantNotification?: ParticipantNotification;
|
|
1235
|
+
}
|
|
1236
|
+
interface BulkDeleteServicesResponse {
|
|
1237
|
+
/** The result of each service removal. */
|
|
1238
|
+
results?: BulkServiceResult[];
|
|
1239
|
+
/** Delete statistics. */
|
|
1240
|
+
bulkActionMetadata?: BulkActionMetadata;
|
|
1241
|
+
}
|
|
1242
|
+
interface BulkDeleteServicesByFilterRequest {
|
|
1243
|
+
/** Filter to identify the services that need to be deleted. */
|
|
1244
|
+
filter: Record<string, any> | null;
|
|
1245
|
+
/**
|
|
1246
|
+
* Whether to preserve future sessions with participants.
|
|
1247
|
+
*
|
|
1248
|
+
* Default: `false`.
|
|
1249
|
+
*/
|
|
1250
|
+
preserveFutureSessionsWithParticipants?: boolean;
|
|
1251
|
+
/** Whether to notify participants about the change and an optional custom message. */
|
|
1252
|
+
participantNotification?: ParticipantNotification;
|
|
1253
|
+
}
|
|
1254
|
+
interface BulkDeleteServicesByFilterResponse {
|
|
1255
|
+
/**
|
|
1256
|
+
* ID of the service deletion job.
|
|
1257
|
+
*
|
|
1258
|
+
* Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.
|
|
1259
|
+
* @format GUID
|
|
1260
|
+
*/
|
|
1261
|
+
jobId?: string;
|
|
1262
|
+
}
|
|
1263
|
+
interface QueryServicesRequest {
|
|
1264
|
+
/** WQL expression. */
|
|
1265
|
+
query: QueryV2;
|
|
1266
|
+
}
|
|
1267
|
+
interface QueryV2 extends QueryV2PagingMethodOneOf {
|
|
1268
|
+
/** Paging options to limit and skip the number of items. */
|
|
1269
|
+
paging?: Paging;
|
|
1270
|
+
/**
|
|
1271
|
+
* Filter object in the following format:
|
|
1272
|
+
*
|
|
1273
|
+
* `"filter" : {
|
|
1274
|
+
* "fieldName1": "value1",
|
|
1275
|
+
* "fieldName2":{"$operator":"value2"}
|
|
1276
|
+
* }`
|
|
1277
|
+
*
|
|
1278
|
+
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`
|
|
1279
|
+
*
|
|
1280
|
+
* Read more about [supported fields and operators](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting).
|
|
1281
|
+
*/
|
|
1282
|
+
filter?: Record<string, any> | null;
|
|
1283
|
+
/**
|
|
1284
|
+
* Sort object in the following format:
|
|
1285
|
+
* `[ {"fieldName":"sortField1","order":"ASC"},
|
|
1286
|
+
* {"fieldName":"sortField2","order":"DESC"} ]`
|
|
1287
|
+
*
|
|
1288
|
+
* Read more about [sorting](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting#wix-bookings_services-v2_filtering-and-sorting_sorting).
|
|
1289
|
+
* @maxSize 50
|
|
1290
|
+
*/
|
|
1291
|
+
sort?: Sorting[];
|
|
1292
|
+
}
|
|
1293
|
+
/** @oneof */
|
|
1294
|
+
interface QueryV2PagingMethodOneOf {
|
|
1295
|
+
/** Paging options to limit and skip the number of items. */
|
|
1296
|
+
paging?: Paging;
|
|
1297
|
+
}
|
|
1298
|
+
interface Sorting {
|
|
1299
|
+
/**
|
|
1300
|
+
* Name of the field to sort by.
|
|
1301
|
+
* @maxLength 512
|
|
1302
|
+
*/
|
|
1303
|
+
fieldName?: string;
|
|
1304
|
+
/** Sort order. */
|
|
1305
|
+
order?: SortOrder;
|
|
1306
|
+
}
|
|
1307
|
+
declare enum SortOrder {
|
|
1308
|
+
ASC = "ASC",
|
|
1309
|
+
DESC = "DESC"
|
|
1310
|
+
}
|
|
1311
|
+
interface Paging {
|
|
1312
|
+
/** Number of items to load. */
|
|
1313
|
+
limit?: number | null;
|
|
1314
|
+
/** Number of items to skip in the current sort order. */
|
|
1315
|
+
offset?: number | null;
|
|
1316
|
+
}
|
|
1317
|
+
interface CursorPaging {
|
|
1318
|
+
/**
|
|
1319
|
+
* Number of items to load.
|
|
1320
|
+
* @max 100
|
|
1321
|
+
*/
|
|
1322
|
+
limit?: number | null;
|
|
1323
|
+
/**
|
|
1324
|
+
* Pointer to the next or previous page in the list of results.
|
|
1325
|
+
*
|
|
1326
|
+
* You can get the relevant cursor token
|
|
1327
|
+
* from the `pagingMetadata` object in the previous call's response.
|
|
1328
|
+
* Not relevant for the first request.
|
|
1329
|
+
* @maxLength 16000
|
|
1330
|
+
*/
|
|
1331
|
+
cursor?: string | null;
|
|
1332
|
+
}
|
|
1333
|
+
interface QueryServicesResponse {
|
|
1334
|
+
/** The retrieved services. */
|
|
1335
|
+
services?: Service[];
|
|
1336
|
+
/** Paging metadata, including offset and count. */
|
|
1337
|
+
pagingMetadata?: PagingMetadataV2;
|
|
1338
|
+
}
|
|
1339
|
+
interface PagingMetadataV2 {
|
|
1340
|
+
/** Number of items returned in the response. */
|
|
1341
|
+
count?: number | null;
|
|
1342
|
+
/** Offset that was requested. */
|
|
1343
|
+
offset?: number | null;
|
|
1344
|
+
/** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */
|
|
1345
|
+
total?: number | null;
|
|
1346
|
+
/** Flag that indicates the server failed to calculate the `total` field. */
|
|
1347
|
+
tooManyToCount?: boolean | null;
|
|
1348
|
+
/** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
|
|
1349
|
+
cursors?: Cursors;
|
|
1350
|
+
}
|
|
1351
|
+
interface Cursors {
|
|
1352
|
+
/**
|
|
1353
|
+
* Cursor pointing to next page in the list of results.
|
|
1354
|
+
* @maxLength 16000
|
|
1355
|
+
*/
|
|
1356
|
+
next?: string | null;
|
|
1357
|
+
/**
|
|
1358
|
+
* Cursor pointing to previous page in the list of results.
|
|
1359
|
+
* @maxLength 16000
|
|
1360
|
+
*/
|
|
1361
|
+
prev?: string | null;
|
|
1362
|
+
}
|
|
1363
|
+
interface SearchServicesRequest {
|
|
1364
|
+
/** WQL, search or aggregation expression. */
|
|
1365
|
+
search: CursorSearch;
|
|
1366
|
+
}
|
|
1367
|
+
interface CursorSearch extends CursorSearchPagingMethodOneOf {
|
|
1368
|
+
/**
|
|
1369
|
+
* Cursor pointing to page of results.
|
|
1370
|
+
* When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
|
|
1371
|
+
*/
|
|
1372
|
+
cursorPaging?: CursorPaging;
|
|
1373
|
+
/** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */
|
|
1374
|
+
filter?: Record<string, any> | null;
|
|
1375
|
+
/**
|
|
1376
|
+
* Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
|
|
1377
|
+
* @maxSize 10
|
|
1378
|
+
*/
|
|
1379
|
+
sort?: Sorting[];
|
|
1380
|
+
/**
|
|
1381
|
+
* Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
|
|
1382
|
+
* @maxSize 10
|
|
1383
|
+
*/
|
|
1384
|
+
aggregations?: Aggregation[];
|
|
1385
|
+
/** Free text to match in searchable fields */
|
|
1386
|
+
search?: SearchDetails;
|
|
1387
|
+
/**
|
|
1388
|
+
* UTC offset or IANA time zone. Valid values are
|
|
1389
|
+
* ISO 8601 UTC offsets, such as +02:00 or -06:00,
|
|
1390
|
+
* and IANA time zone IDs, such as Europe/Rome
|
|
1391
|
+
*
|
|
1392
|
+
* Affects all filters and aggregations returned values.
|
|
1393
|
+
* You may override this behavior in a specific filter by providing
|
|
1394
|
+
* timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
|
|
1395
|
+
* @maxLength 50
|
|
1396
|
+
*/
|
|
1397
|
+
timeZone?: string | null;
|
|
1398
|
+
}
|
|
1399
|
+
/** @oneof */
|
|
1400
|
+
interface CursorSearchPagingMethodOneOf {
|
|
1401
|
+
/**
|
|
1402
|
+
* Cursor pointing to page of results.
|
|
1403
|
+
* When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
|
|
1404
|
+
*/
|
|
1405
|
+
cursorPaging?: CursorPaging;
|
|
1406
|
+
}
|
|
1407
|
+
interface Aggregation extends AggregationKindOneOf {
|
|
1408
|
+
/** Value aggregation */
|
|
1409
|
+
value?: ValueAggregation;
|
|
1410
|
+
/** Range aggregation */
|
|
1411
|
+
range?: RangeAggregation;
|
|
1412
|
+
/** Scalar aggregation */
|
|
1413
|
+
scalar?: ScalarAggregation;
|
|
1414
|
+
/** Date histogram aggregation */
|
|
1415
|
+
dateHistogram?: DateHistogramAggregation;
|
|
1416
|
+
/** Nested aggregation */
|
|
1417
|
+
nested?: NestedAggregation;
|
|
1418
|
+
/**
|
|
1419
|
+
* User-defined name of aggregation, should be unique, will appear in aggregation results
|
|
1420
|
+
* @maxLength 100
|
|
1421
|
+
*/
|
|
1422
|
+
name?: string | null;
|
|
1423
|
+
/** Type of aggregation, client must provide matching aggregation field below */
|
|
1424
|
+
type?: AggregationType;
|
|
1425
|
+
/**
|
|
1426
|
+
* Field to aggregate by, use dot notation to specify json path
|
|
1427
|
+
* @maxLength 200
|
|
1428
|
+
*/
|
|
1429
|
+
fieldPath?: string;
|
|
1430
|
+
/**
|
|
1431
|
+
* deprecated, use `nested` instead
|
|
1432
|
+
* @deprecated deprecated, use `nested` instead
|
|
1433
|
+
* @replacedBy kind.nested
|
|
1434
|
+
* @targetRemovalDate 2025-01-01
|
|
1435
|
+
*/
|
|
1436
|
+
groupBy?: GroupByAggregation;
|
|
1437
|
+
}
|
|
1438
|
+
/** @oneof */
|
|
1439
|
+
interface AggregationKindOneOf {
|
|
1440
|
+
/** Value aggregation */
|
|
1441
|
+
value?: ValueAggregation;
|
|
1442
|
+
/** Range aggregation */
|
|
1443
|
+
range?: RangeAggregation;
|
|
1444
|
+
/** Scalar aggregation */
|
|
1445
|
+
scalar?: ScalarAggregation;
|
|
1446
|
+
/** Date histogram aggregation */
|
|
1447
|
+
dateHistogram?: DateHistogramAggregation;
|
|
1448
|
+
/** Nested aggregation */
|
|
1449
|
+
nested?: NestedAggregation;
|
|
1450
|
+
}
|
|
1451
|
+
interface RangeBucket {
|
|
1452
|
+
/** Inclusive lower bound of the range. Required if to is not given. */
|
|
1453
|
+
from?: number | null;
|
|
1454
|
+
/** Exclusive upper bound of the range. Required if from is not given. */
|
|
1455
|
+
to?: number | null;
|
|
1456
|
+
}
|
|
1457
|
+
declare enum SortType {
|
|
1458
|
+
COUNT = "COUNT",
|
|
1459
|
+
VALUE = "VALUE"
|
|
1460
|
+
}
|
|
1461
|
+
declare enum SortDirection {
|
|
1462
|
+
DESC = "DESC",
|
|
1463
|
+
ASC = "ASC"
|
|
1464
|
+
}
|
|
1465
|
+
declare enum MissingValues {
|
|
1466
|
+
EXCLUDE = "EXCLUDE",
|
|
1467
|
+
INCLUDE = "INCLUDE"
|
|
1468
|
+
}
|
|
1469
|
+
interface IncludeMissingValuesOptions {
|
|
1470
|
+
/**
|
|
1471
|
+
* can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
|
|
1472
|
+
* @maxLength 20
|
|
1473
|
+
*/
|
|
1474
|
+
addToBucket?: string;
|
|
1475
|
+
}
|
|
1476
|
+
declare enum ScalarType {
|
|
1477
|
+
UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
|
|
1478
|
+
COUNT_DISTINCT = "COUNT_DISTINCT",
|
|
1479
|
+
MIN = "MIN",
|
|
1480
|
+
MAX = "MAX"
|
|
1481
|
+
}
|
|
1482
|
+
interface ValueAggregation extends ValueAggregationOptionsOneOf {
|
|
1483
|
+
/** options for including missing values */
|
|
1484
|
+
includeOptions?: IncludeMissingValuesOptions;
|
|
1485
|
+
/** Should sort by number of matches or value of the field */
|
|
1486
|
+
sortType?: SortType;
|
|
1487
|
+
/** Should sort in ascending or descending order */
|
|
1488
|
+
sortDirection?: SortDirection;
|
|
1489
|
+
/** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
|
|
1490
|
+
limit?: number | null;
|
|
1491
|
+
/** should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
|
|
1492
|
+
missingValues?: MissingValues;
|
|
1493
|
+
}
|
|
1494
|
+
/** @oneof */
|
|
1495
|
+
interface ValueAggregationOptionsOneOf {
|
|
1496
|
+
/** options for including missing values */
|
|
1497
|
+
includeOptions?: IncludeMissingValuesOptions;
|
|
1498
|
+
}
|
|
1499
|
+
declare enum NestedAggregationType {
|
|
1500
|
+
UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
|
|
1501
|
+
VALUE = "VALUE",
|
|
1502
|
+
RANGE = "RANGE",
|
|
1503
|
+
SCALAR = "SCALAR",
|
|
1504
|
+
DATE_HISTOGRAM = "DATE_HISTOGRAM"
|
|
1505
|
+
}
|
|
1506
|
+
interface RangeAggregation {
|
|
1507
|
+
/**
|
|
1508
|
+
* Range buckets
|
|
1509
|
+
* @maxSize 50
|
|
1510
|
+
*/
|
|
1511
|
+
buckets?: RangeBucket[];
|
|
1512
|
+
}
|
|
1513
|
+
interface ScalarAggregation {
|
|
1514
|
+
/** Define the operator for the scalar aggregation */
|
|
1515
|
+
type?: ScalarType;
|
|
1516
|
+
}
|
|
1517
|
+
interface DateHistogramAggregation {
|
|
1518
|
+
/** Interval for date histogram aggregation */
|
|
1519
|
+
interval?: DateHistogramAggregationInterval;
|
|
1520
|
+
}
|
|
1521
|
+
declare enum DateHistogramAggregationInterval {
|
|
1522
|
+
/** Unknown interval. */
|
|
1523
|
+
UNKNOWN_INTERVAL = "UNKNOWN_INTERVAL",
|
|
1524
|
+
/** Yearly interval. */
|
|
1525
|
+
YEAR = "YEAR",
|
|
1526
|
+
/** Monthly interval. */
|
|
1527
|
+
MONTH = "MONTH",
|
|
1528
|
+
/** Weekly interval. */
|
|
1529
|
+
WEEK = "WEEK",
|
|
1530
|
+
/** Daily interval. */
|
|
1531
|
+
DAY = "DAY",
|
|
1532
|
+
/** Hourly interval. */
|
|
1533
|
+
HOUR = "HOUR",
|
|
1534
|
+
/** Minute interval. */
|
|
1535
|
+
MINUTE = "MINUTE",
|
|
1536
|
+
/** Second interval. */
|
|
1537
|
+
SECOND = "SECOND"
|
|
1538
|
+
}
|
|
1539
|
+
interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
|
|
1540
|
+
/** Value aggregation */
|
|
1541
|
+
value?: ValueAggregation;
|
|
1542
|
+
/** Range aggregation */
|
|
1543
|
+
range?: RangeAggregation;
|
|
1544
|
+
/** Scalar aggregation */
|
|
1545
|
+
scalar?: ScalarAggregation;
|
|
1546
|
+
/** Date histogram aggregation */
|
|
1547
|
+
dateHistogram?: DateHistogramAggregation;
|
|
1548
|
+
/**
|
|
1549
|
+
* User-defined name of aggregation, should be unique, will appear in aggregation results
|
|
1550
|
+
* @maxLength 100
|
|
1551
|
+
*/
|
|
1552
|
+
name?: string | null;
|
|
1553
|
+
/** Type of aggregation, client must provide matching aggregation field below */
|
|
1554
|
+
type?: NestedAggregationType;
|
|
1555
|
+
/**
|
|
1556
|
+
* Field to aggregate by, use dont notation to specify json path
|
|
1557
|
+
* @maxLength 200
|
|
1558
|
+
*/
|
|
1559
|
+
fieldPath?: string;
|
|
1560
|
+
}
|
|
1561
|
+
/** @oneof */
|
|
1562
|
+
interface NestedAggregationItemKindOneOf {
|
|
1563
|
+
/** Value aggregation */
|
|
1564
|
+
value?: ValueAggregation;
|
|
1565
|
+
/** Range aggregation */
|
|
1566
|
+
range?: RangeAggregation;
|
|
1567
|
+
/** Scalar aggregation */
|
|
1568
|
+
scalar?: ScalarAggregation;
|
|
1569
|
+
/** Date histogram aggregation */
|
|
1570
|
+
dateHistogram?: DateHistogramAggregation;
|
|
1571
|
+
}
|
|
1572
|
+
declare enum AggregationType {
|
|
1573
|
+
UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
|
|
1574
|
+
VALUE = "VALUE",
|
|
1575
|
+
RANGE = "RANGE",
|
|
1576
|
+
SCALAR = "SCALAR",
|
|
1577
|
+
DATE_HISTOGRAM = "DATE_HISTOGRAM",
|
|
1578
|
+
NESTED = "NESTED"
|
|
1579
|
+
}
|
|
1580
|
+
/** nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
|
|
1581
|
+
interface NestedAggregation {
|
|
1582
|
+
/**
|
|
1583
|
+
* Flattened list of aggregations, where each next aggregation is nested within previous one
|
|
1584
|
+
* @minSize 2
|
|
1585
|
+
* @maxSize 10
|
|
1586
|
+
*/
|
|
1587
|
+
nestedAggregations?: NestedAggregationItem[];
|
|
1588
|
+
}
|
|
1589
|
+
interface GroupByAggregation extends GroupByAggregationKindOneOf {
|
|
1590
|
+
/** Value aggregation configuration */
|
|
1591
|
+
value?: ValueAggregation;
|
|
1592
|
+
/**
|
|
1593
|
+
* User-defined name of aggregation, should be unique, will appear in aggregation results
|
|
1594
|
+
* @maxLength 100
|
|
1595
|
+
*/
|
|
1596
|
+
name?: string | null;
|
|
1597
|
+
/**
|
|
1598
|
+
* Field to aggregate by
|
|
1599
|
+
* @maxLength 200
|
|
1600
|
+
*/
|
|
1601
|
+
fieldPath?: string;
|
|
1602
|
+
}
|
|
1603
|
+
/** @oneof */
|
|
1604
|
+
interface GroupByAggregationKindOneOf {
|
|
1605
|
+
/** Value aggregation configuration */
|
|
1606
|
+
value?: ValueAggregation;
|
|
1607
|
+
}
|
|
1608
|
+
interface SearchDetails {
|
|
1609
|
+
/** Boolean search mode */
|
|
1610
|
+
mode?: Mode;
|
|
1611
|
+
/**
|
|
1612
|
+
* Search term or expression
|
|
1613
|
+
* @maxLength 200
|
|
1614
|
+
*/
|
|
1615
|
+
expression?: string | null;
|
|
1616
|
+
/**
|
|
1617
|
+
* Fields to search in. If empty - server will search in own default fields
|
|
1618
|
+
* @maxSize 10
|
|
1619
|
+
* @maxLength 200
|
|
1620
|
+
*/
|
|
1621
|
+
fields?: string[];
|
|
1622
|
+
/** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
|
|
1623
|
+
fuzzy?: boolean;
|
|
1624
|
+
}
|
|
1625
|
+
declare enum Mode {
|
|
1626
|
+
/** Any */
|
|
1627
|
+
OR = "OR",
|
|
1628
|
+
/** All */
|
|
1629
|
+
AND = "AND"
|
|
1630
|
+
}
|
|
1631
|
+
interface SearchServicesResponse {
|
|
1632
|
+
/** The retrieved services. */
|
|
1633
|
+
services?: Service[];
|
|
1634
|
+
/** Cursor paging metadata */
|
|
1635
|
+
pagingMetadata?: CursorPagingMetadata;
|
|
1636
|
+
/** Response aggregation data */
|
|
1637
|
+
aggregationData?: AggregationData;
|
|
1638
|
+
}
|
|
1639
|
+
interface CursorPagingMetadata {
|
|
1640
|
+
/** Number of items returned in the response. */
|
|
1641
|
+
count?: number | null;
|
|
1642
|
+
/** Use these cursor to paginate between results. [Read more](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging). */
|
|
1643
|
+
cursors?: Cursors;
|
|
1644
|
+
/**
|
|
1645
|
+
* Indicates if there are more results after the current page.
|
|
1646
|
+
* If `true`, another page of results can be retrieved.
|
|
1647
|
+
* If `false`, this is the last page.
|
|
1648
|
+
*/
|
|
1649
|
+
hasNext?: boolean | null;
|
|
1650
|
+
}
|
|
1651
|
+
interface AggregationData {
|
|
1652
|
+
/**
|
|
1653
|
+
* key = aggregation name (as derived from search request)
|
|
1654
|
+
* @maxSize 10000
|
|
1655
|
+
*/
|
|
1656
|
+
results?: AggregationResults[];
|
|
1657
|
+
}
|
|
1658
|
+
interface ValueAggregationResult {
|
|
1659
|
+
/**
|
|
1660
|
+
* Value of the field
|
|
1661
|
+
* @maxLength 100
|
|
1662
|
+
*/
|
|
1663
|
+
value?: string;
|
|
1664
|
+
/** Count of entities with this value */
|
|
1665
|
+
count?: number;
|
|
1666
|
+
}
|
|
1667
|
+
interface RangeAggregationResult {
|
|
1668
|
+
/** Inclusive lower bound of the range */
|
|
1669
|
+
from?: number | null;
|
|
1670
|
+
/** Exclusive upper bound of the range */
|
|
1671
|
+
to?: number | null;
|
|
1672
|
+
/** Count of entities in this range */
|
|
1673
|
+
count?: number;
|
|
1674
|
+
}
|
|
1675
|
+
interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
|
|
1676
|
+
/** Value aggregation results */
|
|
1677
|
+
values?: ValueResults;
|
|
1678
|
+
/** Range aggregation results */
|
|
1679
|
+
ranges?: RangeResults;
|
|
1680
|
+
/** Scalar aggregation results */
|
|
1681
|
+
scalar?: AggregationResultsScalarResult;
|
|
1682
|
+
/**
|
|
1683
|
+
* User-defined name of aggregation, matches the one provided in request
|
|
1684
|
+
* @maxLength 100
|
|
1685
|
+
*/
|
|
1686
|
+
name?: string;
|
|
1687
|
+
/** Type of aggregation that matches result */
|
|
1688
|
+
type?: AggregationType;
|
|
1689
|
+
/**
|
|
1690
|
+
* Field to aggregate by, matches the one provided in request
|
|
1691
|
+
* @maxLength 200
|
|
1692
|
+
*/
|
|
1693
|
+
fieldPath?: string;
|
|
1694
|
+
}
|
|
1695
|
+
/** @oneof */
|
|
1696
|
+
interface NestedAggregationResultsResultOneOf {
|
|
1697
|
+
/** Value aggregation results */
|
|
1698
|
+
values?: ValueResults;
|
|
1699
|
+
/** Range aggregation results */
|
|
1700
|
+
ranges?: RangeResults;
|
|
1701
|
+
/** Scalar aggregation results */
|
|
1702
|
+
scalar?: AggregationResultsScalarResult;
|
|
1703
|
+
}
|
|
1704
|
+
interface ValueResults {
|
|
1705
|
+
/**
|
|
1706
|
+
* List of value aggregations
|
|
1707
|
+
* @maxSize 250
|
|
1708
|
+
*/
|
|
1709
|
+
results?: ValueAggregationResult[];
|
|
1710
|
+
}
|
|
1711
|
+
interface RangeResults {
|
|
1712
|
+
/**
|
|
1713
|
+
* List of ranges returned in same order as requested
|
|
1714
|
+
* @maxSize 50
|
|
1715
|
+
*/
|
|
1716
|
+
results?: RangeAggregationResult[];
|
|
1717
|
+
}
|
|
1718
|
+
interface AggregationResultsScalarResult {
|
|
1719
|
+
/** Type of scalar aggregation */
|
|
1720
|
+
type?: ScalarType;
|
|
1721
|
+
/** Value of the scalar aggregation */
|
|
1722
|
+
value?: number;
|
|
1723
|
+
}
|
|
1724
|
+
interface NestedValueAggregationResult {
|
|
1725
|
+
/**
|
|
1726
|
+
* Value of the field
|
|
1727
|
+
* @maxLength 1000
|
|
1728
|
+
*/
|
|
1729
|
+
value?: string;
|
|
1730
|
+
/** Nested aggregations */
|
|
1731
|
+
nestedResults?: NestedAggregationResults;
|
|
1732
|
+
}
|
|
1733
|
+
interface ValueResult {
|
|
1734
|
+
/**
|
|
1735
|
+
* Value of the field
|
|
1736
|
+
* @maxLength 1000
|
|
1737
|
+
*/
|
|
1738
|
+
value?: string;
|
|
1739
|
+
/** Count of entities with this value */
|
|
1740
|
+
count?: number | null;
|
|
1741
|
+
}
|
|
1742
|
+
interface RangeResult {
|
|
1743
|
+
/** Inclusive lower bound of the range */
|
|
1744
|
+
from?: number | null;
|
|
1745
|
+
/** Exclusive upper bound of the range */
|
|
1746
|
+
to?: number | null;
|
|
1747
|
+
/** Count of entities in this range */
|
|
1748
|
+
count?: number | null;
|
|
1749
|
+
}
|
|
1750
|
+
interface ScalarResult {
|
|
1751
|
+
/** Value of the scalar aggregation */
|
|
1752
|
+
value?: number;
|
|
1753
|
+
}
|
|
1754
|
+
interface NestedResultValue extends NestedResultValueResultOneOf {
|
|
1755
|
+
/** Value aggregation result */
|
|
1756
|
+
value?: ValueResult;
|
|
1757
|
+
/** Range aggregation result */
|
|
1758
|
+
range?: RangeResult;
|
|
1759
|
+
/** Scalar aggregation result */
|
|
1760
|
+
scalar?: ScalarResult;
|
|
1761
|
+
/** Date histogram aggregation result */
|
|
1762
|
+
dateHistogram?: ValueResult;
|
|
1763
|
+
}
|
|
1764
|
+
/** @oneof */
|
|
1765
|
+
interface NestedResultValueResultOneOf {
|
|
1766
|
+
/** Value aggregation result */
|
|
1767
|
+
value?: ValueResult;
|
|
1768
|
+
/** Range aggregation result */
|
|
1769
|
+
range?: RangeResult;
|
|
1770
|
+
/** Scalar aggregation result */
|
|
1771
|
+
scalar?: ScalarResult;
|
|
1772
|
+
/** Date histogram aggregation result */
|
|
1773
|
+
dateHistogram?: ValueResult;
|
|
1774
|
+
}
|
|
1775
|
+
interface Results {
|
|
1776
|
+
/** List of nested aggregations */
|
|
1777
|
+
results?: Record<string, NestedResultValue>;
|
|
1778
|
+
}
|
|
1779
|
+
interface DateHistogramResult {
|
|
1780
|
+
/**
|
|
1781
|
+
* Date in ISO 8601 format
|
|
1782
|
+
* @maxLength 100
|
|
1783
|
+
*/
|
|
1784
|
+
value?: string;
|
|
1785
|
+
/** Count of documents in the bucket */
|
|
1786
|
+
count?: number;
|
|
1787
|
+
}
|
|
1788
|
+
interface GroupByValueResults {
|
|
1789
|
+
/**
|
|
1790
|
+
* List of value aggregations
|
|
1791
|
+
* @maxSize 1000
|
|
1792
|
+
*/
|
|
1793
|
+
results?: NestedValueAggregationResult[];
|
|
1794
|
+
}
|
|
1795
|
+
interface DateHistogramResults {
|
|
1796
|
+
/**
|
|
1797
|
+
* List of date histogram aggregations
|
|
1798
|
+
* @maxSize 200
|
|
1799
|
+
*/
|
|
1800
|
+
results?: DateHistogramResult[];
|
|
1801
|
+
}
|
|
1802
|
+
/**
|
|
1803
|
+
* results of `NESTED` aggregation type in a flattened form
|
|
1804
|
+
* aggregations in resulting array are keyed by requested aggregation `name`.
|
|
1805
|
+
*/
|
|
1806
|
+
interface NestedResults {
|
|
1807
|
+
/**
|
|
1808
|
+
* List of nested aggregations
|
|
1809
|
+
* @maxSize 1000
|
|
1810
|
+
*/
|
|
1811
|
+
results?: Results[];
|
|
1812
|
+
}
|
|
1813
|
+
interface AggregationResults extends AggregationResultsResultOneOf {
|
|
1814
|
+
/** Value aggregation results */
|
|
1815
|
+
values?: ValueResults;
|
|
1816
|
+
/** Range aggregation results */
|
|
1817
|
+
ranges?: RangeResults;
|
|
1818
|
+
/** Scalar aggregation results */
|
|
1819
|
+
scalar?: AggregationResultsScalarResult;
|
|
1820
|
+
/** Group by value aggregation results */
|
|
1821
|
+
groupedByValue?: GroupByValueResults;
|
|
1822
|
+
/** Date histogram aggregation results */
|
|
1823
|
+
dateHistogram?: DateHistogramResults;
|
|
1824
|
+
/** Nested aggregation results */
|
|
1825
|
+
nested?: NestedResults;
|
|
1826
|
+
/**
|
|
1827
|
+
* User-defined name of aggregation as derived from search request
|
|
1828
|
+
* @maxLength 100
|
|
1829
|
+
*/
|
|
1830
|
+
name?: string;
|
|
1831
|
+
/** Type of aggregation that must match provided kind as derived from search request */
|
|
1832
|
+
type?: AggregationType;
|
|
1833
|
+
/**
|
|
1834
|
+
* Field to aggregate by as derived from search request
|
|
1835
|
+
* @maxLength 200
|
|
1836
|
+
*/
|
|
1837
|
+
fieldPath?: string;
|
|
1838
|
+
}
|
|
1839
|
+
/** @oneof */
|
|
1840
|
+
interface AggregationResultsResultOneOf {
|
|
1841
|
+
/** Value aggregation results */
|
|
1842
|
+
values?: ValueResults;
|
|
1843
|
+
/** Range aggregation results */
|
|
1844
|
+
ranges?: RangeResults;
|
|
1845
|
+
/** Scalar aggregation results */
|
|
1846
|
+
scalar?: AggregationResultsScalarResult;
|
|
1847
|
+
/** Group by value aggregation results */
|
|
1848
|
+
groupedByValue?: GroupByValueResults;
|
|
1849
|
+
/** Date histogram aggregation results */
|
|
1850
|
+
dateHistogram?: DateHistogramResults;
|
|
1851
|
+
/** Nested aggregation results */
|
|
1852
|
+
nested?: NestedResults;
|
|
1853
|
+
}
|
|
1854
|
+
interface QueryPoliciesRequest {
|
|
1855
|
+
/**
|
|
1856
|
+
* Information about filters, paging, and sorting. See the article about
|
|
1857
|
+
* booking policy filters
|
|
1858
|
+
* ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/supported-filters))
|
|
1859
|
+
* for all supported filters and sorting options.
|
|
1860
|
+
*/
|
|
1861
|
+
query: CursorQuery;
|
|
1862
|
+
}
|
|
1863
|
+
interface CursorQuery extends CursorQueryPagingMethodOneOf {
|
|
1864
|
+
/** 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`. */
|
|
1865
|
+
cursorPaging?: CursorPaging;
|
|
1866
|
+
/**
|
|
1867
|
+
* Filter object in the following format:
|
|
1868
|
+
* `"filter" : {
|
|
1869
|
+
* "fieldName1": "value1",
|
|
1870
|
+
* "fieldName2":{"$operator":"value2"}
|
|
1871
|
+
* }`
|
|
1872
|
+
* Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`
|
|
1873
|
+
*/
|
|
1874
|
+
filter?: Record<string, any> | null;
|
|
1875
|
+
/**
|
|
1876
|
+
* Sort object in the following format:
|
|
1877
|
+
* `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
|
|
1878
|
+
* @maxSize 50
|
|
1879
|
+
*/
|
|
1880
|
+
sort?: Sorting[];
|
|
1881
|
+
}
|
|
1882
|
+
/** @oneof */
|
|
1883
|
+
interface CursorQueryPagingMethodOneOf {
|
|
1884
|
+
/** 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`. */
|
|
1885
|
+
cursorPaging?: CursorPaging;
|
|
1886
|
+
}
|
|
1887
|
+
interface QueryPoliciesResponse {
|
|
1888
|
+
/** Retrieved booking policies and information about the services using them. */
|
|
1889
|
+
bookingPolicies?: BookingPolicyWithServices[];
|
|
1890
|
+
/** Paging metadata. */
|
|
1891
|
+
pagingMetadata?: CursorPagingMetadata;
|
|
1892
|
+
}
|
|
1893
|
+
interface BookingPolicyWithServices {
|
|
1894
|
+
/** Retrieved booking policy. */
|
|
1895
|
+
bookingPolicy?: BookingPolicy;
|
|
1896
|
+
/**
|
|
1897
|
+
* Up to 5 services connected to the booking policy. If `totalServiceCount` is
|
|
1898
|
+
* greater than 5, there are additional services connected to the policy.
|
|
1899
|
+
* You can call *Search Services*
|
|
1900
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/search-services) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/search-services))
|
|
1901
|
+
* specifying the relevant policy ID in the filter, to retrieve all services that are
|
|
1902
|
+
* connected to a booking policy.
|
|
1903
|
+
* @maxSize 5
|
|
1904
|
+
*/
|
|
1905
|
+
connectedServices?: Service[];
|
|
1906
|
+
/** Total number of services connected to the booking policy. */
|
|
1907
|
+
totalServiceCount?: number;
|
|
1908
|
+
}
|
|
1909
|
+
interface QueryBookingFormsRequest {
|
|
1910
|
+
/**
|
|
1911
|
+
* Information about filters, paging, and sorting. See the article about
|
|
1912
|
+
* form filters ([REST](https://dev.wix.com/docs/rest/crm/forms/forms/introduction/supported-filters))
|
|
1913
|
+
* for all supported filters and sorting options.
|
|
1914
|
+
*/
|
|
1915
|
+
query: CursorQuery;
|
|
1916
|
+
/**
|
|
1917
|
+
* Conditional fields to return.
|
|
1918
|
+
* @maxSize 1
|
|
1919
|
+
*/
|
|
1920
|
+
conditionalFields?: RequestedFields[];
|
|
1921
|
+
}
|
|
1922
|
+
declare enum RequestedFields {
|
|
1923
|
+
/** Unknown requested conditional field. */
|
|
1924
|
+
UNKNOWN_REQUESTED_FIELD = "UNKNOWN_REQUESTED_FIELD",
|
|
1925
|
+
/** Whether to return the site's default booking form. */
|
|
1926
|
+
DEFAULT_BOOKING_FORM = "DEFAULT_BOOKING_FORM"
|
|
1927
|
+
}
|
|
1928
|
+
interface QueryBookingFormsResponse {
|
|
1929
|
+
/** Retrieved booking forms and information about connected services. */
|
|
1930
|
+
bookingForms?: BookingForm[];
|
|
1931
|
+
/** Paging metadata. */
|
|
1932
|
+
pagingMetadata?: CursorPagingMetadata;
|
|
1933
|
+
/** The site's default booking form and information about connected services. */
|
|
1934
|
+
defaultBookingForm?: BookingForm;
|
|
1935
|
+
}
|
|
1936
|
+
interface BookingForm {
|
|
1937
|
+
/** Information about the retrieved booking form. */
|
|
1938
|
+
formDetails?: FormDetails;
|
|
1939
|
+
/**
|
|
1940
|
+
* Up to 5 services connected to the booking form. If `totalServiceCount` is
|
|
1941
|
+
* greater than 5, there are additional services connected to the policy.
|
|
1942
|
+
* You can call *Search Services*
|
|
1943
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/search-services) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/search-services))
|
|
1944
|
+
* specifying the relevant policy ID in the filter, to retrieve all services that are
|
|
1945
|
+
* connected to a booking policy.
|
|
1946
|
+
* @maxSize 5
|
|
1947
|
+
*/
|
|
1948
|
+
connectedServices?: ConnectedService[];
|
|
1949
|
+
/** Total number of services connected to the booking form. */
|
|
1950
|
+
totalServiceCount?: number;
|
|
1951
|
+
}
|
|
1952
|
+
interface FormDetails {
|
|
1953
|
+
/**
|
|
1954
|
+
* Form ID.
|
|
1955
|
+
* @format GUID
|
|
1956
|
+
*/
|
|
1957
|
+
formId?: string;
|
|
1958
|
+
/**
|
|
1959
|
+
* Form name.
|
|
1960
|
+
* @maxLength 200
|
|
1961
|
+
*/
|
|
1962
|
+
name?: string | null;
|
|
1963
|
+
/**
|
|
1964
|
+
* Revision number, which increments by 1 each time the form is updated.
|
|
1965
|
+
* To prevent conflicting changes,
|
|
1966
|
+
* the current revision must be passed when updating the form.
|
|
1967
|
+
* @readonly
|
|
1968
|
+
*/
|
|
1969
|
+
revision?: string | null;
|
|
1970
|
+
}
|
|
1971
|
+
interface ConnectedService {
|
|
1972
|
+
/**
|
|
1973
|
+
* ID of the service connected to the booking form.
|
|
1974
|
+
* @format GUID
|
|
1975
|
+
*/
|
|
1976
|
+
id?: string | null;
|
|
1977
|
+
/**
|
|
1978
|
+
* Name of the service connected to the booking form.
|
|
1979
|
+
* @maxLength 400
|
|
1980
|
+
* @minLength 1
|
|
1981
|
+
*/
|
|
1982
|
+
name?: string | null;
|
|
1983
|
+
}
|
|
1984
|
+
interface CountServicesRequest {
|
|
1985
|
+
/**
|
|
1986
|
+
* Query filter to base the count on. See supported filters
|
|
1987
|
+
* ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
|
|
1988
|
+
* for more details.
|
|
1989
|
+
*/
|
|
1990
|
+
filter?: Record<string, any> | null;
|
|
1991
|
+
}
|
|
1992
|
+
interface CountServicesResponse {
|
|
1993
|
+
/** Number of services matching the specified filter. */
|
|
1994
|
+
count?: number;
|
|
1995
|
+
}
|
|
1996
|
+
interface QueryLocationsRequest {
|
|
1997
|
+
/** Filter. */
|
|
1998
|
+
filter?: QueryLocationsFilter;
|
|
1999
|
+
}
|
|
2000
|
+
interface QueryLocationsFilter {
|
|
2001
|
+
/**
|
|
2002
|
+
* Service filter. See supported filters
|
|
2003
|
+
* ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
|
|
2004
|
+
* for more details.
|
|
2005
|
+
*/
|
|
2006
|
+
services?: Record<string, any> | null;
|
|
2007
|
+
/**
|
|
2008
|
+
* List of business IDs to filter by.
|
|
2009
|
+
* @format GUID
|
|
2010
|
+
* @maxSize 100
|
|
2011
|
+
*/
|
|
2012
|
+
businessLocationIds?: string[];
|
|
2013
|
+
}
|
|
2014
|
+
interface QueryLocationsResponse {
|
|
2015
|
+
/**
|
|
2016
|
+
* Retrieved business locations and whether each location is connected to at
|
|
2017
|
+
* least one service.
|
|
2018
|
+
*/
|
|
2019
|
+
businessLocations?: BusinessLocations;
|
|
2020
|
+
/**
|
|
2021
|
+
* Retrieved custom locations and whether each location is connected to at
|
|
2022
|
+
* least one service.
|
|
2023
|
+
*/
|
|
2024
|
+
customLocations?: CustomLocations;
|
|
2025
|
+
/**
|
|
2026
|
+
* Retrieved customer locations and whether each location is connected to at
|
|
2027
|
+
* least one service.
|
|
2028
|
+
*/
|
|
2029
|
+
customerLocations?: CustomerLocations;
|
|
2030
|
+
}
|
|
2031
|
+
interface BusinessLocations {
|
|
2032
|
+
/**
|
|
2033
|
+
* Whether at least one service matching the filter is connected to any of the
|
|
2034
|
+
* retrieved business locations.
|
|
2035
|
+
*/
|
|
2036
|
+
exists?: boolean;
|
|
2037
|
+
/**
|
|
2038
|
+
* Retrieved business locations.
|
|
2039
|
+
* @maxSize 100
|
|
2040
|
+
*/
|
|
2041
|
+
locations?: V2Location[];
|
|
2042
|
+
}
|
|
2043
|
+
interface CustomLocations {
|
|
2044
|
+
/**
|
|
2045
|
+
* Whether at least one service matching the filter is connected to any of the
|
|
2046
|
+
* retrieved custom locations.
|
|
2047
|
+
*/
|
|
2048
|
+
exists?: boolean;
|
|
2049
|
+
}
|
|
2050
|
+
interface CustomerLocations {
|
|
2051
|
+
/**
|
|
2052
|
+
* Whether at least one service matching the filter is connected to any of the
|
|
2053
|
+
* retrieved customer locations.
|
|
2054
|
+
*/
|
|
2055
|
+
exists?: boolean;
|
|
2056
|
+
}
|
|
2057
|
+
interface QueryCategoriesRequest {
|
|
2058
|
+
/** Filter. */
|
|
2059
|
+
filter?: QueryCategoriesFilter;
|
|
2060
|
+
}
|
|
2061
|
+
interface QueryCategoriesFilter {
|
|
2062
|
+
/**
|
|
2063
|
+
* Service filter. See supported filters
|
|
2064
|
+
* ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
|
|
2065
|
+
* for more details.
|
|
2066
|
+
*/
|
|
2067
|
+
services?: Record<string, any> | null;
|
|
2068
|
+
/**
|
|
2069
|
+
* List of category IDs to filter by.
|
|
2070
|
+
* @format GUID
|
|
2071
|
+
* @maxSize 100
|
|
2072
|
+
*/
|
|
2073
|
+
categoryIds?: string[];
|
|
2074
|
+
}
|
|
2075
|
+
interface QueryCategoriesResponse {
|
|
2076
|
+
/** Retrieved categories. */
|
|
2077
|
+
categories?: V2Category[];
|
|
2078
|
+
}
|
|
2079
|
+
interface SetServiceLocationsRequest {
|
|
2080
|
+
/**
|
|
2081
|
+
* ID of the service.
|
|
2082
|
+
* @format GUID
|
|
2083
|
+
*/
|
|
2084
|
+
serviceId: string;
|
|
2085
|
+
/**
|
|
2086
|
+
* List of locations replacing existing service locations. Omitting an existing location removes it from the service. Specify `removedLocationSessionsAction` to determine the handling of future sessions scheduled at that location.
|
|
2087
|
+
* @maxSize 100
|
|
2088
|
+
*/
|
|
2089
|
+
locations: V2Location[];
|
|
2090
|
+
/**
|
|
2091
|
+
* The action to perform on sessions currently set to a removed location. For
|
|
2092
|
+
* example, move existing sessions to a new specified location.
|
|
2093
|
+
* If not specified, sessions will not be moved to a new location.
|
|
2094
|
+
*/
|
|
2095
|
+
removedLocationSessionsAction?: RemovedLocationSessionsAction;
|
|
2096
|
+
/**
|
|
2097
|
+
* Whether to notify participants about the change of location, and an
|
|
2098
|
+
* Optional custom message. The notification is sent only to participants of sessions that are affected by the change.
|
|
2099
|
+
*/
|
|
2100
|
+
participantNotification?: ParticipantNotification;
|
|
2101
|
+
}
|
|
2102
|
+
interface RemovedLocationSessionsAction extends RemovedLocationSessionsActionActionOptionsOneOf {
|
|
2103
|
+
/**
|
|
2104
|
+
* Details about the new location of future events that were scheduled to take
|
|
2105
|
+
* place at a removed location.
|
|
2106
|
+
*/
|
|
2107
|
+
moveToLocationOptions?: MoveToNewLocationsOptions;
|
|
2108
|
+
/** Information about what to do with future events at the removed location. */
|
|
2109
|
+
action?: Action;
|
|
2110
|
+
}
|
|
2111
|
+
/** @oneof */
|
|
2112
|
+
interface RemovedLocationSessionsActionActionOptionsOneOf {
|
|
2113
|
+
/**
|
|
2114
|
+
* Details about the new location of future events that were scheduled to take
|
|
2115
|
+
* place at a removed location.
|
|
2116
|
+
*/
|
|
2117
|
+
moveToLocationOptions?: MoveToNewLocationsOptions;
|
|
2118
|
+
}
|
|
2119
|
+
declare enum Action {
|
|
2120
|
+
UNKNOWN_ACTION_TYPE = "UNKNOWN_ACTION_TYPE",
|
|
2121
|
+
/** Retain all future sessions at their current location. This is the default. */
|
|
2122
|
+
KEEP_AT_CURRENT_LOCATION = "KEEP_AT_CURRENT_LOCATION",
|
|
2123
|
+
/** Move future events to a new location. */
|
|
2124
|
+
MOVE_TO_LOCATION = "MOVE_TO_LOCATION",
|
|
2125
|
+
/**
|
|
2126
|
+
* Cancel all future events at the removed location.
|
|
2127
|
+
* Currently not supported.
|
|
2128
|
+
*/
|
|
2129
|
+
DELETE = "DELETE"
|
|
2130
|
+
}
|
|
2131
|
+
interface MoveToNewLocationsOptions {
|
|
2132
|
+
/** The new location to move existing sessions currently set to a removed location, used when `action` is `MOVE_TO_LOCATION`. */
|
|
2133
|
+
newLocation?: V2Location;
|
|
2134
|
+
}
|
|
2135
|
+
interface SetServiceLocationsResponse {
|
|
2136
|
+
/** The updated service with the newly set locations. */
|
|
2137
|
+
service?: Service;
|
|
2138
|
+
}
|
|
2139
|
+
interface EnablePricingPlansForServiceRequest {
|
|
2140
|
+
/**
|
|
2141
|
+
* ID of the service to update.
|
|
2142
|
+
* @format GUID
|
|
2143
|
+
*/
|
|
2144
|
+
serviceId: string;
|
|
2145
|
+
/**
|
|
2146
|
+
* IDs of the *pricing plans*
|
|
2147
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/pricing-plans/plans/introduction) | [REST](https://dev.wix.com/api/rest/wix-pricing-plans/pricing-plans/plans/plan-object))
|
|
2148
|
+
* to add to the service's `payment.pricingPlanIds` array.
|
|
2149
|
+
* @format GUID
|
|
2150
|
+
* @maxSize 100
|
|
2151
|
+
*/
|
|
2152
|
+
pricingPlanIds: string[];
|
|
2153
|
+
}
|
|
2154
|
+
interface EnablePricingPlansForServiceResponse {
|
|
2155
|
+
/** Updated service. */
|
|
2156
|
+
service?: Service;
|
|
2157
|
+
}
|
|
2158
|
+
interface DisablePricingPlansForServiceRequest {
|
|
2159
|
+
/**
|
|
2160
|
+
* ID of the service to update.
|
|
2161
|
+
* @format GUID
|
|
2162
|
+
*/
|
|
2163
|
+
serviceId: string;
|
|
2164
|
+
/**
|
|
2165
|
+
* IDs of the *pricing plans*
|
|
2166
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/pricing-plans/plans/introduction) | [REST](https://dev.wix.com/api/rest/wix-pricing-plans/pricing-plans/plans/plan-object))
|
|
2167
|
+
* to remove from the service's `payment.pricingPlanIds` array.
|
|
2168
|
+
* @format GUID
|
|
2169
|
+
* @maxSize 75
|
|
2170
|
+
*/
|
|
2171
|
+
pricingPlanIds?: string[];
|
|
2172
|
+
}
|
|
2173
|
+
interface DisablePricingPlansForServiceResponse {
|
|
2174
|
+
/** Updated service. */
|
|
2175
|
+
service?: Service;
|
|
2176
|
+
}
|
|
2177
|
+
interface SetCustomSlugRequest {
|
|
2178
|
+
/**
|
|
2179
|
+
* ID of the service for which to update the active slug.
|
|
2180
|
+
* @format GUID
|
|
2181
|
+
*/
|
|
2182
|
+
serviceId: string;
|
|
2183
|
+
/**
|
|
2184
|
+
* Slug to set as the active service slug.
|
|
2185
|
+
* @maxLength 500
|
|
2186
|
+
*/
|
|
2187
|
+
slug?: string;
|
|
2188
|
+
}
|
|
2189
|
+
interface SetCustomSlugResponse {
|
|
2190
|
+
/** Updated active service slug. */
|
|
2191
|
+
slug?: Slug;
|
|
2192
|
+
/** Updated service. */
|
|
2193
|
+
service?: Service;
|
|
2194
|
+
}
|
|
2195
|
+
interface ValidateSlugRequest {
|
|
2196
|
+
/**
|
|
2197
|
+
* IO of the service to check custom slug validity for.
|
|
2198
|
+
* @format GUID
|
|
2199
|
+
*/
|
|
2200
|
+
serviceId: string;
|
|
2201
|
+
/**
|
|
2202
|
+
* Custom slug to validate.
|
|
2203
|
+
* @maxLength 500
|
|
2204
|
+
*/
|
|
2205
|
+
slug?: string;
|
|
2206
|
+
}
|
|
2207
|
+
interface ValidateSlugResponse {
|
|
2208
|
+
/** Whether the slug is valid. */
|
|
2209
|
+
valid?: boolean;
|
|
2210
|
+
/**
|
|
2211
|
+
* Valid slug. Available only if `{"valid": true}`.
|
|
2212
|
+
* @maxLength 500
|
|
2213
|
+
*/
|
|
2214
|
+
slug?: string | null;
|
|
2215
|
+
/**
|
|
2216
|
+
* Reasons why the slug is invalid. Available only if `{"valid": false}`.
|
|
2217
|
+
* @maxSize 3
|
|
2218
|
+
*/
|
|
2219
|
+
errors?: InvalidSlugError[];
|
|
2220
|
+
}
|
|
2221
|
+
declare enum InvalidSlugError {
|
|
2222
|
+
/** Unknown slug error. */
|
|
2223
|
+
UNKNOWN_SLUG_ERROR = "UNKNOWN_SLUG_ERROR",
|
|
2224
|
+
/** Slug contains illegal characters. */
|
|
2225
|
+
SLUG_CONTAINS_ILLEGAL_CHARACTERS = "SLUG_CONTAINS_ILLEGAL_CHARACTERS",
|
|
2226
|
+
/** Slug is already associated with another service. */
|
|
2227
|
+
SLUG_ALREADY_EXISTS = "SLUG_ALREADY_EXISTS"
|
|
2228
|
+
}
|
|
2229
|
+
interface CloneServiceRequest {
|
|
2230
|
+
/**
|
|
2231
|
+
* ID of the service to clone.
|
|
2232
|
+
* @format GUID
|
|
2233
|
+
*/
|
|
2234
|
+
sourceServiceId: string;
|
|
2235
|
+
}
|
|
2236
|
+
interface CloneServiceResponse {
|
|
2237
|
+
/** Cloned service. */
|
|
2238
|
+
service?: Service;
|
|
2239
|
+
/**
|
|
2240
|
+
* Information about connected entities that couldn't be cloned. For example,
|
|
2241
|
+
* future recurring events, the booking form, service variants, and connected
|
|
2242
|
+
* pricing plans.
|
|
2243
|
+
*/
|
|
2244
|
+
errors?: CloneErrors[];
|
|
2245
|
+
}
|
|
2246
|
+
declare enum CloneErrors {
|
|
2247
|
+
/**
|
|
2248
|
+
* Failed to clone the original service's *options and variants*
|
|
2249
|
+
* ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)).
|
|
2250
|
+
*/
|
|
2251
|
+
OPTIONS_AND_VARIANTS = "OPTIONS_AND_VARIANTS",
|
|
2252
|
+
/** Failed to clone the original service's *booking form*. */
|
|
2253
|
+
FORM = "FORM"
|
|
2254
|
+
}
|
|
2255
|
+
|
|
2256
|
+
type __PublicMethodMetaInfo<K = string, M = unknown, T = unknown, S = unknown, Q = unknown, R = unknown> = {
|
|
2257
|
+
getUrl: (context: any) => string;
|
|
2258
|
+
httpMethod: K;
|
|
2259
|
+
path: string;
|
|
2260
|
+
pathParams: M;
|
|
2261
|
+
__requestType: T;
|
|
2262
|
+
__originalRequestType: S;
|
|
2263
|
+
__responseType: Q;
|
|
2264
|
+
__originalResponseType: R;
|
|
2265
|
+
};
|
|
2266
|
+
declare function createService(): __PublicMethodMetaInfo<'POST', {}, CreateServiceRequest$1, CreateServiceRequest, CreateServiceResponse$1, CreateServiceResponse>;
|
|
2267
|
+
declare function getService(): __PublicMethodMetaInfo<'GET', {
|
|
2268
|
+
serviceId: string;
|
|
2269
|
+
}, GetServiceRequest$1, GetServiceRequest, GetServiceResponse$1, GetServiceResponse>;
|
|
2270
|
+
declare function updateService(): __PublicMethodMetaInfo<'PATCH', {
|
|
2271
|
+
serviceId: string;
|
|
2272
|
+
}, UpdateServiceRequest$1, UpdateServiceRequest, UpdateServiceResponse$1, UpdateServiceResponse>;
|
|
2273
|
+
declare function bulkUpdateServices(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateServicesRequest$1, BulkUpdateServicesRequest, BulkUpdateServicesResponse$1, BulkUpdateServicesResponse>;
|
|
2274
|
+
declare function bulkUpdateServicesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateServicesByFilterRequest$1, BulkUpdateServicesByFilterRequest, BulkUpdateServicesByFilterResponse$1, BulkUpdateServicesByFilterResponse>;
|
|
2275
|
+
declare function deleteService(): __PublicMethodMetaInfo<'DELETE', {
|
|
2276
|
+
serviceId: string;
|
|
2277
|
+
}, DeleteServiceRequest$1, DeleteServiceRequest, DeleteServiceResponse$1, DeleteServiceResponse>;
|
|
2278
|
+
declare function bulkDeleteServices(): __PublicMethodMetaInfo<'POST', {}, BulkDeleteServicesRequest$1, BulkDeleteServicesRequest, BulkDeleteServicesResponse$1, BulkDeleteServicesResponse>;
|
|
2279
|
+
declare function bulkDeleteServicesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkDeleteServicesByFilterRequest$1, BulkDeleteServicesByFilterRequest, BulkDeleteServicesByFilterResponse$1, BulkDeleteServicesByFilterResponse>;
|
|
2280
|
+
declare function queryServices(): __PublicMethodMetaInfo<'POST', {}, QueryServicesRequest$1, QueryServicesRequest, QueryServicesResponse$1, QueryServicesResponse>;
|
|
2281
|
+
declare function searchServices(): __PublicMethodMetaInfo<'POST', {}, SearchServicesRequest$1, SearchServicesRequest, SearchServicesResponse$1, SearchServicesResponse>;
|
|
2282
|
+
declare function queryPolicies(): __PublicMethodMetaInfo<'POST', {}, QueryPoliciesRequest$1, QueryPoliciesRequest, QueryPoliciesResponse$1, QueryPoliciesResponse>;
|
|
2283
|
+
declare function queryBookingForms(): __PublicMethodMetaInfo<'POST', {}, QueryBookingFormsRequest$1, QueryBookingFormsRequest, QueryBookingFormsResponse$1, QueryBookingFormsResponse>;
|
|
2284
|
+
declare function countServices(): __PublicMethodMetaInfo<'POST', {}, CountServicesRequest$1, CountServicesRequest, CountServicesResponse$1, CountServicesResponse>;
|
|
2285
|
+
declare function queryLocations(): __PublicMethodMetaInfo<'POST', {}, QueryLocationsRequest$1, QueryLocationsRequest, QueryLocationsResponse$1, QueryLocationsResponse>;
|
|
2286
|
+
declare function queryCategories(): __PublicMethodMetaInfo<'POST', {}, QueryCategoriesRequest$1, QueryCategoriesRequest, QueryCategoriesResponse$1, QueryCategoriesResponse>;
|
|
2287
|
+
declare function setServiceLocations(): __PublicMethodMetaInfo<'POST', {
|
|
2288
|
+
serviceId: string;
|
|
2289
|
+
}, SetServiceLocationsRequest$1, SetServiceLocationsRequest, SetServiceLocationsResponse$1, SetServiceLocationsResponse>;
|
|
2290
|
+
declare function enablePricingPlansForService(): __PublicMethodMetaInfo<'POST', {
|
|
2291
|
+
serviceId: string;
|
|
2292
|
+
}, EnablePricingPlansForServiceRequest$1, EnablePricingPlansForServiceRequest, EnablePricingPlansForServiceResponse$1, EnablePricingPlansForServiceResponse>;
|
|
2293
|
+
declare function disablePricingPlansForService(): __PublicMethodMetaInfo<'POST', {
|
|
2294
|
+
serviceId: string;
|
|
2295
|
+
}, DisablePricingPlansForServiceRequest$1, DisablePricingPlansForServiceRequest, DisablePricingPlansForServiceResponse$1, DisablePricingPlansForServiceResponse>;
|
|
2296
|
+
declare function setCustomSlug(): __PublicMethodMetaInfo<'POST', {
|
|
2297
|
+
serviceId: string;
|
|
2298
|
+
}, SetCustomSlugRequest$1, SetCustomSlugRequest, SetCustomSlugResponse$1, SetCustomSlugResponse>;
|
|
2299
|
+
declare function validateSlug(): __PublicMethodMetaInfo<'POST', {}, ValidateSlugRequest$1, ValidateSlugRequest, ValidateSlugResponse$1, ValidateSlugResponse>;
|
|
2300
|
+
declare function cloneService(): __PublicMethodMetaInfo<'POST', {}, CloneServiceRequest$1, CloneServiceRequest, CloneServiceResponse$1, CloneServiceResponse>;
|
|
2301
|
+
|
|
2302
|
+
export { type __PublicMethodMetaInfo, bulkDeleteServices, bulkDeleteServicesByFilter, bulkUpdateServices, bulkUpdateServicesByFilter, cloneService, countServices, createService, deleteService, disablePricingPlansForService, enablePricingPlansForService, getService, queryBookingForms, queryCategories, queryLocations, queryPolicies, queryServices, searchServices, setCustomSlug, setServiceLocations, updateService, validateSlug };
|