@wix/bookings 1.0.419 → 1.0.421

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.
@@ -129,18 +129,18 @@ interface QueryV2 extends QueryV2PagingMethodOneOf {
129
129
  */
130
130
  filter?: Record<string, any> | null;
131
131
  /** Currently, only sorting by `startDate` is supported. */
132
- sort?: Sorting$1[];
132
+ sort?: Sorting$2[];
133
133
  }
134
134
  /** @oneof */
135
135
  interface QueryV2PagingMethodOneOf {
136
136
  }
137
- interface Sorting$1 {
137
+ interface Sorting$2 {
138
138
  /** Name of the field to sort by. */
139
139
  fieldName?: string;
140
140
  /** Sort order. */
141
- order?: SortOrder$1;
141
+ order?: SortOrder$2;
142
142
  }
143
- declare enum SortOrder$1 {
143
+ declare enum SortOrder$2 {
144
144
  ASC = "ASC",
145
145
  DESC = "DESC"
146
146
  }
@@ -392,7 +392,7 @@ interface NestedTimeSlot$1 {
392
392
  */
393
393
  availableResources?: AvailableResources$1[];
394
394
  }
395
- interface CursorPaging$3 {
395
+ interface CursorPaging$4 {
396
396
  /**
397
397
  * Number of results to load.
398
398
  *
@@ -409,9 +409,9 @@ interface CursorPaging$3 {
409
409
  */
410
410
  cursor?: string | null;
411
411
  }
412
- interface CursorPagingMetadata$2 {
412
+ interface CursorPagingMetadata$3 {
413
413
  /** Offset that was requested. */
414
- cursors?: Cursors$5;
414
+ cursors?: Cursors$6;
415
415
  /**
416
416
  * Indicates if there are more results after the current page.
417
417
  * If `true`, another page of results can be retrieved.
@@ -419,7 +419,7 @@ interface CursorPagingMetadata$2 {
419
419
  */
420
420
  hasNext?: boolean | null;
421
421
  }
422
- interface Cursors$5 {
422
+ interface Cursors$6 {
423
423
  /** Cursor pointing to next page in the list of results. */
424
424
  next?: string | null;
425
425
  /** Cursor pointing to previous page in the list of results. */
@@ -455,7 +455,7 @@ interface ListAvailabilityTimeSlotsResponse {
455
455
  * <code class="grey-background">count</code> is not supported.</p>
456
456
  * </blockquote>
457
457
  */
458
- cursorPagingMetadata?: CursorPagingMetadata$2;
458
+ cursorPagingMetadata?: CursorPagingMetadata$3;
459
459
  }
460
460
  interface GetAvailabilityTimeSlotResponse {
461
461
  /** Time slot. */
@@ -630,7 +630,7 @@ interface ListAvailabilityTimeSlotsOptions {
630
630
  * </p>
631
631
  * </blockquote>
632
632
  */
633
- cursorPaging?: CursorPaging$3;
633
+ cursorPaging?: CursorPaging$4;
634
634
  /**
635
635
  * resources filter
636
636
  * If specified, only time slots with these resources will be returned.
@@ -843,7 +843,7 @@ interface Service$1 {
843
843
  */
844
844
  includeResourceTypeIds?: string[];
845
845
  }
846
- interface CursorPaging$2 {
846
+ interface CursorPaging$3 {
847
847
  /**
848
848
  * Number of results to load.
849
849
  *
@@ -881,11 +881,11 @@ interface ListMultiServiceAvailabilityTimeSlotsResponse {
881
881
  * <code class="grey-background">count</code> is not supported.</p>
882
882
  * </blockquote>
883
883
  */
884
- cursorPagingMetadata?: CursorPagingMetadata$1;
884
+ cursorPagingMetadata?: CursorPagingMetadata$2;
885
885
  }
886
- interface CursorPagingMetadata$1 {
886
+ interface CursorPagingMetadata$2 {
887
887
  /** Offset that was requested. */
888
- cursors?: Cursors$4;
888
+ cursors?: Cursors$5;
889
889
  /**
890
890
  * Indicates if there are more results after the current page.
891
891
  * If `true`, another page of results can be retrieved.
@@ -893,7 +893,7 @@ interface CursorPagingMetadata$1 {
893
893
  */
894
894
  hasNext?: boolean | null;
895
895
  }
896
- interface Cursors$4 {
896
+ interface Cursors$5 {
897
897
  /** Cursor pointing to next page in the list of results. */
898
898
  next?: string | null;
899
899
  /** Cursor pointing to previous page in the list of results. */
@@ -1061,7 +1061,7 @@ interface ListMultiServiceAvailabilityTimeSlotsOptions {
1061
1061
  * </p>
1062
1062
  * </blockquote>
1063
1063
  */
1064
- cursorPaging?: CursorPaging$2;
1064
+ cursorPaging?: CursorPaging$3;
1065
1065
  }
1066
1066
 
1067
1067
  declare function listMultiServiceAvailabilityTimeSlots$1(httpClient: HttpClient): (options?: ListMultiServiceAvailabilityTimeSlotsOptions) => Promise<ListMultiServiceAvailabilityTimeSlotsResponse & ListMultiServiceAvailabilityTimeSlotsResponseNonNullableFields>;
@@ -1343,7 +1343,7 @@ interface DisconnectResponse {
1343
1343
  /** Updated connection details. */
1344
1344
  connection?: Connection;
1345
1345
  }
1346
- interface CursorPaging$1 {
1346
+ interface CursorPaging$2 {
1347
1347
  /**
1348
1348
  * Number of events to load.
1349
1349
  * Max: `1000`
@@ -1362,7 +1362,7 @@ interface ListEventsResponse {
1362
1362
  /** List of external calendar events matching the filters. */
1363
1363
  events?: Event$2[];
1364
1364
  /** Paging metadata. */
1365
- pagingMetadata?: CursorPagingMetadata;
1365
+ pagingMetadata?: CursorPagingMetadata$1;
1366
1366
  /** List of provider IDs for connections for which retrieval of events failed. Returned only if `partialFailure` parameter is `true` in the request. */
1367
1367
  failedProviderIds?: string[] | null;
1368
1368
  }
@@ -1400,11 +1400,11 @@ interface Event$2 {
1400
1400
  */
1401
1401
  scheduleOwnerName?: string | null;
1402
1402
  }
1403
- interface CursorPagingMetadata {
1403
+ interface CursorPagingMetadata$1 {
1404
1404
  /** Number of items returned in the response. */
1405
1405
  count?: number | null;
1406
1406
  /** Offset that was requested. */
1407
- cursors?: Cursors$3;
1407
+ cursors?: Cursors$4;
1408
1408
  /**
1409
1409
  * Indicates if there are more results after the current page.
1410
1410
  * If `true`, another page of results can be retrieved.
@@ -1412,7 +1412,7 @@ interface CursorPagingMetadata {
1412
1412
  */
1413
1413
  hasNext?: boolean | null;
1414
1414
  }
1415
- interface Cursors$3 {
1415
+ interface Cursors$4 {
1416
1416
  /** Cursor pointing to next page in the list of results. */
1417
1417
  next?: string | null;
1418
1418
  }
@@ -1562,7 +1562,7 @@ interface ListEventsOptions {
1562
1562
  */
1563
1563
  fieldsets?: string[];
1564
1564
  /** Pagination options. */
1565
- cursorPaging?: CursorPaging$1;
1565
+ cursorPaging?: CursorPaging$2;
1566
1566
  /**
1567
1567
  * Whether to return a partial list of events if details can't be retrieved for some connections.
1568
1568
  *
@@ -2597,7 +2597,7 @@ interface GetServiceOptionsAndVariantsByServiceIdResponse {
2597
2597
  /** Retrieved `serviceOptionsAndVariants` object. */
2598
2598
  serviceVariants?: ServiceOptionsAndVariants;
2599
2599
  }
2600
- interface Cursors$2 {
2600
+ interface Cursors$3 {
2601
2601
  /** Cursor string pointing to the next page in the list of results. */
2602
2602
  next?: string | null;
2603
2603
  /** Cursor pointing to the previous page in the list of results. */
@@ -2796,7 +2796,7 @@ interface DeleteServiceOptionsAndVariantsOptions {
2796
2796
  revision?: string;
2797
2797
  }
2798
2798
  interface QueryCursorResult$1 {
2799
- cursors: Cursors$2;
2799
+ cursors: Cursors$3;
2800
2800
  hasNext: () => boolean;
2801
2801
  hasPrev: () => boolean;
2802
2802
  length: number;
@@ -2823,7 +2823,7 @@ interface ServiceOptionsAndVariantsListQueryBuilder {
2823
2823
  * @param values - List of values to compare against.
2824
2824
  * @documentationMaturity preview
2825
2825
  */
2826
- hasSome: (propertyName: 'variants.values.choices.optionId' | 'variants.values.price', value: any[]) => ServiceOptionsAndVariantsListQueryBuilder;
2826
+ hasSome: (propertyName: 'options.values.id' | 'options.values.type' | 'variants.values.choices.custom' | 'variants.values.choices.optionId' | 'variants.values.price.value' | 'variants.values.price.currency', value: any[]) => ServiceOptionsAndVariantsListQueryBuilder;
2827
2827
  /**
2828
2828
  * Refines a query to match items where the specified property is in a short list of specified values.
2829
2829
  * @documentationMaturity preview */
@@ -3478,17 +3478,17 @@ interface Attendance$1 {
3478
3478
  /** Total number of participants that attended the session. */
3479
3479
  numberOfAttendees?: number;
3480
3480
  }
3481
- interface Sorting {
3481
+ interface Sorting$1 {
3482
3482
  /** Name of the field to sort by. */
3483
3483
  fieldName?: string;
3484
3484
  /** Sort order. */
3485
- order?: SortOrder;
3485
+ order?: SortOrder$1;
3486
3486
  }
3487
- declare enum SortOrder {
3487
+ declare enum SortOrder$1 {
3488
3488
  ASC = "ASC",
3489
3489
  DESC = "DESC"
3490
3490
  }
3491
- interface CursorPaging {
3491
+ interface CursorPaging$1 {
3492
3492
  /** Maximum number of items to return in the results. */
3493
3493
  limit?: number | null;
3494
3494
  /**
@@ -3509,9 +3509,9 @@ interface PagingMetadataV2 {
3509
3509
  /** Flag that indicates the server failed to calculate the `total` field. */
3510
3510
  tooManyToCount?: boolean | null;
3511
3511
  /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
3512
- cursors?: Cursors$1;
3512
+ cursors?: Cursors$2;
3513
3513
  }
3514
- interface Cursors$1 {
3514
+ interface Cursors$2 {
3515
3515
  /** Cursor string pointing to the next page in the list of results. */
3516
3516
  next?: string | null;
3517
3517
  /** Cursor pointing to the previous page in the list of results. */
@@ -3521,7 +3521,7 @@ interface CommonQueryV2 extends CommonQueryV2PagingMethodOneOf {
3521
3521
  /** Paging options to limit and skip the number of items. */
3522
3522
  paging?: CommonPaging;
3523
3523
  /** 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`. */
3524
- cursorPaging?: CursorPaging;
3524
+ cursorPaging?: CursorPaging$1;
3525
3525
  /**
3526
3526
  * Filter object in the following format:
3527
3527
  * `"filter" : {
@@ -3538,14 +3538,14 @@ interface CommonQueryV2 extends CommonQueryV2PagingMethodOneOf {
3538
3538
  * Sort object in the following format:
3539
3539
  * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
3540
3540
  */
3541
- sort?: Sorting[];
3541
+ sort?: Sorting$1[];
3542
3542
  }
3543
3543
  /** @oneof */
3544
3544
  interface CommonQueryV2PagingMethodOneOf {
3545
3545
  /** Paging options to limit and skip the number of items. */
3546
3546
  paging?: CommonPaging;
3547
3547
  /** 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`. */
3548
- cursorPaging?: CursorPaging;
3548
+ cursorPaging?: CursorPaging$1;
3549
3549
  }
3550
3550
  interface CommonPaging {
3551
3551
  /** Number of items to load. */
@@ -4511,6 +4511,48 @@ declare enum WebhookIdentityType$2 {
4511
4511
  WIX_USER = "WIX_USER",
4512
4512
  APP = "APP"
4513
4513
  }
4514
+ interface BulkServiceResult {
4515
+ /** Updated service metadata. */
4516
+ itemMetadata?: ItemMetadata$1;
4517
+ /** The updated service. */
4518
+ item?: Service;
4519
+ }
4520
+ interface ItemMetadata$1 {
4521
+ /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
4522
+ _id?: string | null;
4523
+ /** Index of the item within the request array. Allows for correlation between request and response items. */
4524
+ originalIndex?: number;
4525
+ /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
4526
+ success?: boolean;
4527
+ /** Details about the error in case of failure. */
4528
+ error?: ApplicationError$1;
4529
+ }
4530
+ interface ApplicationError$1 {
4531
+ /** Error code. */
4532
+ code?: string;
4533
+ /** Description of the error. */
4534
+ description?: string;
4535
+ /** Data related to the error. */
4536
+ data?: Record<string, any> | null;
4537
+ }
4538
+ interface BulkActionMetadata$1 {
4539
+ /** Number of items that were successfully processed. */
4540
+ totalSuccesses?: number;
4541
+ /** Number of items that couldn't be processed. */
4542
+ totalFailures?: number;
4543
+ /** Number of failures without details because detailed failure threshold was exceeded. */
4544
+ undetailedFailures?: number;
4545
+ }
4546
+ interface MaskedService {
4547
+ /** Service to update. [Partial updates](https://dev.wix.com/api/rest/wix-bookings/bookings/patch-endpoints-and-field-masks-in-update-requests) are supported. */
4548
+ service?: Service;
4549
+ }
4550
+ interface BulkUpdateServicesResponse {
4551
+ /** The result of each service update. */
4552
+ results?: BulkServiceResult[];
4553
+ /** Update statistics. */
4554
+ bulkActionMetadata?: BulkActionMetadata$1;
4555
+ }
4514
4556
  interface V2ParticipantNotification {
4515
4557
  /**
4516
4558
  * Whether to send the message about the changes to the customer.
@@ -4521,111 +4563,2095 @@ interface V2ParticipantNotification {
4521
4563
  /** Custom message to send to the participants about the changes to the booking. */
4522
4564
  message?: string | null;
4523
4565
  }
4524
- interface CountServicesResponse {
4525
- /** The number of services matching the given filter. */
4526
- count?: number;
4566
+ interface BulkDeleteServicesResponse {
4567
+ /** The result of each service removal. */
4568
+ results?: BulkServiceResult[];
4569
+ /** Update statistics. */
4570
+ bulkActionMetadata?: BulkActionMetadata$1;
4527
4571
  }
4528
- interface CountServicesResponseNonNullableFields {
4529
- count: number;
4572
+ interface Sorting {
4573
+ /** Name of the field to sort by. */
4574
+ fieldName?: string;
4575
+ /** Sort order. */
4576
+ order?: SortOrder;
4530
4577
  }
4531
- interface BaseEventMetadata$2 {
4532
- /** App instance ID. */
4533
- instanceId?: string | null;
4534
- /** Event type. */
4535
- eventType?: string;
4536
- /** The identification type and identity data. */
4537
- identity?: IdentificationData$3;
4578
+ declare enum SortOrder {
4579
+ ASC = "ASC",
4580
+ DESC = "DESC"
4538
4581
  }
4539
- interface EventMetadata$1 extends BaseEventMetadata$2 {
4582
+ interface CursorPaging {
4583
+ /** Number of items to load. */
4584
+ limit?: number | null;
4540
4585
  /**
4541
- * Unique event ID.
4542
- * Allows clients to ignore duplicate webhooks.
4586
+ * Pointer to the next or previous page in the list of results.
4587
+ *
4588
+ * You can get the relevant cursor token
4589
+ * from the `pagingMetadata` object in the previous call's response.
4590
+ * Not relevant for the first request.
4543
4591
  */
4544
- _id?: string;
4592
+ cursor?: string | null;
4593
+ }
4594
+ interface Cursors$1 {
4595
+ /** Cursor pointing to next page in the list of results. */
4596
+ next?: string | null;
4597
+ /** Cursor pointing to previous page in the list of results. */
4598
+ prev?: string | null;
4599
+ }
4600
+ interface CursorSearch extends CursorSearchPagingMethodOneOf {
4545
4601
  /**
4546
- * Assumes actions are also always typed to an entity_type
4547
- * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
4602
+ * Cursor pointing to page of results.
4603
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
4548
4604
  */
4549
- entityFqdn?: string;
4605
+ cursorPaging?: CursorPaging;
4606
+ /** 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) */
4607
+ filter?: Record<string, any> | null;
4608
+ /** Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] */
4609
+ sort?: Sorting[];
4610
+ /** 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. */
4611
+ aggregations?: Aggregation[];
4612
+ /** Free text to match in searchable fields */
4613
+ search?: SearchDetails;
4550
4614
  /**
4551
- * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)
4552
- * This is although the created/updated/deleted notion is duplication of the oneof types
4553
- * Example: created/updated/deleted/started/completed/email_opened
4615
+ * UTC offset or IANA time zone. Valid values are
4616
+ * ISO 8601 UTC offsets, such as +02:00 or -06:00,
4617
+ * and IANA time zone IDs, such as Europe/Rome
4618
+ *
4619
+ * Affects all filters and aggregations returned values.
4620
+ * You may override this behavior in a specific filter by providing
4621
+ * timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
4554
4622
  */
4555
- slug?: string;
4556
- /** ID of the entity associated with the event. */
4557
- entityId?: string;
4558
- /** Event timestamp. */
4559
- eventTime?: Date;
4623
+ timeZone?: string | null;
4624
+ }
4625
+ /** @oneof */
4626
+ interface CursorSearchPagingMethodOneOf {
4560
4627
  /**
4561
- * Whether the event was triggered as a result of a privacy regulation application
4562
- * (for example, GDPR).
4628
+ * Cursor pointing to page of results.
4629
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
4563
4630
  */
4564
- triggeredByAnonymizeRequest?: boolean | null;
4565
- /** If present, indicates the action that triggered the event. */
4566
- originatedFrom?: string | null;
4631
+ cursorPaging?: CursorPaging;
4632
+ }
4633
+ interface Aggregation extends AggregationKindOneOf {
4634
+ value?: ValueAggregation;
4635
+ range?: RangeAggregation;
4636
+ scalar?: ScalarAggregation;
4637
+ dateHistogram?: DateHistogramAggregation;
4638
+ nested?: NestedAggregation;
4639
+ name?: string | null;
4640
+ type?: AggregationType;
4641
+ fieldPath?: string;
4642
+ /** @deprecated */
4643
+ groupBy?: GroupByAggregation;
4644
+ }
4645
+ /** @oneof */
4646
+ interface AggregationKindOneOf {
4647
+ value?: ValueAggregation;
4648
+ range?: RangeAggregation;
4649
+ scalar?: ScalarAggregation;
4650
+ dateHistogram?: DateHistogramAggregation;
4651
+ nested?: NestedAggregation;
4652
+ }
4653
+ interface RangeBucket {
4654
+ /** Inclusive lower bound of the range. Required if to is not given. */
4655
+ from?: number | null;
4656
+ /** Exclusive upper bound of the range. Required if from is not given. */
4657
+ to?: number | null;
4658
+ }
4659
+ declare enum SortType {
4660
+ COUNT = "COUNT",
4661
+ VALUE = "VALUE"
4662
+ }
4663
+ declare enum SortDirection {
4664
+ DESC = "DESC",
4665
+ ASC = "ASC"
4666
+ }
4667
+ declare enum MissingValues {
4668
+ EXCLUDE = "EXCLUDE",
4669
+ INCLUDE = "INCLUDE"
4670
+ }
4671
+ interface IncludeMissingValuesOptions {
4672
+ /** can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ... */
4673
+ addToBucket?: string;
4674
+ }
4675
+ declare enum ScalarType {
4676
+ UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
4677
+ COUNT_DISTINCT = "COUNT_DISTINCT",
4678
+ MIN = "MIN",
4679
+ MAX = "MAX",
4680
+ SUM = "SUM",
4681
+ AVG = "AVG"
4682
+ }
4683
+ interface ValueAggregation extends ValueAggregationOptionsOneOf {
4684
+ /** options for including missing values */
4685
+ includeOptions?: IncludeMissingValuesOptions;
4686
+ sortType?: SortType;
4687
+ sortDirection?: SortDirection;
4688
+ /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
4689
+ limit?: number | null;
4690
+ /** should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
4691
+ missingValues?: MissingValues;
4692
+ }
4693
+ /** @oneof */
4694
+ interface ValueAggregationOptionsOneOf {
4695
+ /** options for including missing values */
4696
+ includeOptions?: IncludeMissingValuesOptions;
4697
+ }
4698
+ declare enum NestedAggregationType {
4699
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
4700
+ VALUE = "VALUE",
4701
+ RANGE = "RANGE",
4702
+ SCALAR = "SCALAR",
4703
+ DATE_HISTOGRAM = "DATE_HISTOGRAM"
4704
+ }
4705
+ interface RangeAggregation {
4706
+ /** Range buckets */
4707
+ buckets?: RangeBucket[];
4708
+ }
4709
+ interface ScalarAggregation {
4710
+ type?: ScalarType;
4711
+ }
4712
+ interface DateHistogramAggregation {
4713
+ interval?: DateHistogramAggregationInterval;
4714
+ }
4715
+ declare enum DateHistogramAggregationInterval {
4716
+ UNKNOWN_INTERVAL = "UNKNOWN_INTERVAL",
4717
+ YEAR = "YEAR",
4718
+ MONTH = "MONTH",
4719
+ WEEK = "WEEK",
4720
+ DAY = "DAY",
4721
+ HOUR = "HOUR",
4722
+ MINUTE = "MINUTE",
4723
+ SECOND = "SECOND"
4724
+ }
4725
+ interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
4726
+ value?: ValueAggregation;
4727
+ range?: RangeAggregation;
4728
+ scalar?: ScalarAggregation;
4729
+ dateHistogram?: DateHistogramAggregation;
4730
+ name?: string | null;
4731
+ type?: NestedAggregationType;
4732
+ fieldPath?: string;
4733
+ }
4734
+ /** @oneof */
4735
+ interface NestedAggregationItemKindOneOf {
4736
+ value?: ValueAggregation;
4737
+ range?: RangeAggregation;
4738
+ scalar?: ScalarAggregation;
4739
+ dateHistogram?: DateHistogramAggregation;
4740
+ }
4741
+ declare enum AggregationType {
4742
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
4743
+ VALUE = "VALUE",
4744
+ RANGE = "RANGE",
4745
+ SCALAR = "SCALAR",
4746
+ DATE_HISTOGRAM = "DATE_HISTOGRAM",
4747
+ NESTED = "NESTED"
4748
+ }
4749
+ /** nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
4750
+ interface NestedAggregation {
4751
+ nestedAggregations?: NestedAggregationItem[];
4752
+ }
4753
+ interface GroupByAggregation extends GroupByAggregationKindOneOf {
4754
+ value?: ValueAggregation;
4755
+ name?: string | null;
4756
+ fieldPath?: string;
4757
+ }
4758
+ /** @oneof */
4759
+ interface GroupByAggregationKindOneOf {
4760
+ value?: ValueAggregation;
4761
+ }
4762
+ interface SearchDetails {
4763
+ /** Boolean search mode */
4764
+ mode?: Mode;
4765
+ /** Search term or expression */
4766
+ expression?: string | null;
4767
+ /** Fields to search in. If empty - server will search in own default fields */
4768
+ fields?: string[];
4769
+ /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
4770
+ fuzzy?: boolean;
4771
+ }
4772
+ declare enum Mode {
4773
+ /** Any */
4774
+ OR = "OR",
4775
+ /** All */
4776
+ AND = "AND"
4777
+ }
4778
+ interface SearchServicesResponse {
4779
+ /** The retrieved services. */
4780
+ services?: Service[];
4781
+ /** Cursor paging metadata */
4782
+ pagingMetadata?: CursorPagingMetadata;
4783
+ /** Response aggregation data */
4784
+ aggregationData?: AggregationData;
4785
+ }
4786
+ interface CursorPagingMetadata {
4787
+ /** Number of items returned in the response. */
4788
+ count?: number | null;
4789
+ /** 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). */
4790
+ cursors?: Cursors$1;
4567
4791
  /**
4568
- * A sequence number defining the order of updates to the underlying entity.
4569
- * For example, given that some entity was updated at 16:00 and than again at 16:01,
4570
- * it is guaranteed that the sequence number of the second update is strictly higher than the first.
4571
- * As the consumer, you can use this value to ensure that you handle messages in the correct order.
4572
- * To do so, you will need to persist this number on your end, and compare the sequence number from the
4573
- * message against the one you have stored. Given that the stored number is higher, you should ignore the message.
4792
+ * Indicates if there are more results after the current page.
4793
+ * If `true`, another page of results can be retrieved.
4794
+ * If `false`, this is the last page.
4574
4795
  */
4575
- entityEventSequence?: string | null;
4796
+ hasNext?: boolean | null;
4576
4797
  }
4577
- interface ServiceCreatedEnvelope {
4578
- entity: Service;
4579
- metadata: EventMetadata$1;
4798
+ interface AggregationData {
4799
+ /** key = aggregation name (as derived from search request) */
4800
+ results?: AggregationResults[];
4580
4801
  }
4581
- interface ServiceUpdatedEnvelope {
4582
- entity: Service;
4583
- metadata: EventMetadata$1;
4802
+ interface ValueAggregationResult {
4803
+ value?: string;
4804
+ count?: number;
4584
4805
  }
4585
- interface ServiceDeletedEnvelope {
4586
- metadata: EventMetadata$1;
4806
+ interface RangeAggregationResult {
4807
+ from?: number | null;
4808
+ to?: number | null;
4809
+ count?: number;
4587
4810
  }
4588
- interface UpdateService {
4811
+ interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
4812
+ values?: ValueResults;
4813
+ ranges?: RangeResults;
4814
+ scalar?: AggregationResultsScalarResult;
4815
+ name?: string;
4816
+ type?: AggregationType;
4817
+ fieldPath?: string;
4818
+ }
4819
+ /** @oneof */
4820
+ interface NestedAggregationResultsResultOneOf {
4821
+ values?: ValueResults;
4822
+ ranges?: RangeResults;
4823
+ scalar?: AggregationResultsScalarResult;
4824
+ }
4825
+ interface ValueResults {
4826
+ results?: ValueAggregationResult[];
4827
+ }
4828
+ interface RangeResults {
4829
+ results?: RangeAggregationResult[];
4830
+ }
4831
+ interface AggregationResultsScalarResult {
4832
+ type?: ScalarType;
4833
+ value?: number;
4834
+ }
4835
+ interface NestedValueAggregationResult {
4836
+ value?: string;
4837
+ nestedResults?: NestedAggregationResults;
4838
+ }
4839
+ interface ValueResult {
4840
+ value?: string;
4841
+ count?: number | null;
4842
+ }
4843
+ interface RangeResult {
4844
+ from?: number | null;
4845
+ to?: number | null;
4846
+ count?: number | null;
4847
+ }
4848
+ interface ScalarResult {
4849
+ value?: number;
4850
+ }
4851
+ interface NestedResultValue extends NestedResultValueResultOneOf {
4852
+ value?: ValueResult;
4853
+ range?: RangeResult;
4854
+ scalar?: ScalarResult;
4855
+ dateHistogram?: ValueResult;
4856
+ }
4857
+ /** @oneof */
4858
+ interface NestedResultValueResultOneOf {
4859
+ value?: ValueResult;
4860
+ range?: RangeResult;
4861
+ scalar?: ScalarResult;
4862
+ dateHistogram?: ValueResult;
4863
+ }
4864
+ interface Results {
4865
+ results?: Record<string, NestedResultValue>;
4866
+ }
4867
+ interface DateHistogramResult {
4868
+ value?: string;
4869
+ count?: number;
4870
+ }
4871
+ interface GroupByValueResults {
4872
+ results?: NestedValueAggregationResult[];
4873
+ }
4874
+ interface DateHistogramResults {
4875
+ results?: DateHistogramResult[];
4876
+ }
4877
+ /**
4878
+ * results of `NESTED` aggregation type in a flattened form
4879
+ * aggregations in resulting array are keyed by requested aggregation `name`.
4880
+ */
4881
+ interface NestedResults {
4882
+ results?: Results[];
4883
+ }
4884
+ interface AggregationResults extends AggregationResultsResultOneOf {
4885
+ values?: ValueResults;
4886
+ ranges?: RangeResults;
4887
+ scalar?: AggregationResultsScalarResult;
4888
+ groupedByValue?: GroupByValueResults;
4889
+ dateHistogram?: DateHistogramResults;
4890
+ nested?: NestedResults;
4891
+ name?: string;
4892
+ type?: AggregationType;
4893
+ fieldPath?: string;
4894
+ }
4895
+ /** @oneof */
4896
+ interface AggregationResultsResultOneOf {
4897
+ values?: ValueResults;
4898
+ ranges?: RangeResults;
4899
+ scalar?: AggregationResultsScalarResult;
4900
+ groupedByValue?: GroupByValueResults;
4901
+ dateHistogram?: DateHistogramResults;
4902
+ nested?: NestedResults;
4903
+ }
4904
+ interface CursorQuery extends CursorQueryPagingMethodOneOf {
4905
+ /** 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`. */
4906
+ cursorPaging?: CursorPaging;
4589
4907
  /**
4590
- * Service ID.
4591
- * @readonly
4908
+ * Filter object in the following format:
4909
+ * `"filter" : {
4910
+ * "fieldName1": "value1",
4911
+ * "fieldName2":{"$operator":"value2"}
4912
+ * }`
4913
+ * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`
4592
4914
  */
4593
- _id?: string | null;
4594
- /** Service type. */
4595
- type?: ServiceType;
4596
- /** Order of a service within a category. */
4597
- sortOrder?: number | null;
4598
- name?: string | null;
4599
- description?: string | null;
4600
- tagLine?: string | null;
4601
- /** Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity. */
4602
- defaultCapacity?: number | null;
4603
- /** Media associated with the service. */
4604
- media?: Media;
4605
- /** Whether the service is hidden from the site. */
4606
- hidden?: boolean | null;
4607
- /** The category the service is associated with. */
4608
- category?: V2Category;
4609
- /** The form used when booking the service. */
4610
- form?: Form;
4611
- /** Payment options for booking the service. */
4612
- payment?: Payment;
4613
- /** Online booking settings. */
4614
- onlineBooking?: OnlineBooking;
4615
- /** Conferencing options for this service. */
4616
- conferencing?: Conferencing;
4915
+ filter?: Record<string, any> | null;
4617
4916
  /**
4618
- * The locations this service is offered at.
4619
- * In case of multiple (more than 1) location, All locations must be of type `BUSINESS`.
4620
- * For courses only: Currently, only 1 location is supported, for all location types.
4917
+ * Sort object in the following format:
4918
+ * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
4621
4919
  */
4622
- locations?: V2Location[];
4623
- /** Policy 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. */
4624
- bookingPolicy?: BookingPolicy;
4625
- /** The service's schedule, which can be used to manage the service's sessions. */
4626
- schedule?: V2Schedule;
4627
- /** IDs of the staff members providing the service. For appointments only. */
4628
- staffMemberIds?: string[];
4920
+ sort?: Sorting[];
4921
+ }
4922
+ /** @oneof */
4923
+ interface CursorQueryPagingMethodOneOf {
4924
+ /** 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`. */
4925
+ cursorPaging?: CursorPaging;
4926
+ }
4927
+ interface QueryPoliciesResponse {
4928
+ /** The retrieved policies. */
4929
+ bookingPolicies?: BookingPolicyWithServices[];
4930
+ /** Paging metadata, including offset and count. */
4931
+ pagingMetadata?: CursorPagingMetadata;
4932
+ }
4933
+ interface BookingPolicyWithServices {
4934
+ /** The booking policy. */
4935
+ bookingPolicy?: BookingPolicy;
4936
+ /** The services associated with the booking policy. Up to 5 services are returned per policy. */
4937
+ services?: Service[];
4938
+ /** Whether there are more services associated with the booking policy. */
4939
+ hasMoreServices?: boolean | null;
4940
+ /** The number of services associated with the booking policy. */
4941
+ countOfServices?: number;
4942
+ }
4943
+ interface CountServicesResponse {
4944
+ /** The number of services matching the given filter. */
4945
+ count?: number;
4946
+ }
4947
+ interface RemovedLocationSessionsAction extends RemovedLocationSessionsActionActionOptionsOneOf {
4948
+ /** Options related to the action, such as a new location to move existing sessions to. */
4949
+ moveToLocationOptions?: MoveToNewLocationsOptions;
4950
+ /** The action to perform on sessions currently set to a removed location. For example, move existing sessions to a new specified location. */
4951
+ action?: Action;
4952
+ }
4953
+ /** @oneof */
4954
+ interface RemovedLocationSessionsActionActionOptionsOneOf {
4955
+ /** Options related to the action, such as a new location to move existing sessions to. */
4956
+ moveToLocationOptions?: MoveToNewLocationsOptions;
4957
+ }
4958
+ declare enum Action {
4959
+ UNKNOWN_ACTION_TYPE = "UNKNOWN_ACTION_TYPE",
4960
+ /**
4961
+ * Keep future sessions at their current location. This is the default.
4962
+ * Note: The location will be set directly on the session. i.e, if the location is currently inherited from the schedule, the inheritance will be overridden.
4963
+ */
4964
+ KEEP_AT_CURRENT_LOCATION = "KEEP_AT_CURRENT_LOCATION",
4965
+ /**
4966
+ * Move future sessions to a new location.
4967
+ * The new location must be specified in the availability locations to set ('SetAvailabilityLocationsRequest.locations').
4968
+ */
4969
+ MOVE_TO_LOCATION = "MOVE_TO_LOCATION",
4970
+ /**
4971
+ * Delete future sessions.
4972
+ * Currently not supported.
4973
+ */
4974
+ DELETE = "DELETE"
4975
+ }
4976
+ interface MoveToNewLocationsOptions {
4977
+ /** The new location to move existing sessions currently set to a removed location, used when `action` is `MOVE_TO_LOCATION`. */
4978
+ newLocation?: V2Location;
4979
+ }
4980
+ interface SetServiceLocationsResponse {
4981
+ /** The updated service with the newly set locations. */
4982
+ service?: Service;
4983
+ }
4984
+ interface EnablePricingPlansForServiceResponse {
4985
+ /** IDs of the pricing plans connected to the service. */
4986
+ pricingPlanIds?: string[];
4987
+ /** The service after the pricing plans update. */
4988
+ service?: Service;
4989
+ }
4990
+ interface DisablePricingPlansForServiceResponse {
4991
+ /** The service after the pricing plans update. */
4992
+ service?: Service;
4993
+ }
4994
+ interface SetCustomSlugResponse {
4995
+ /** The new slug set as the active slug for the service. */
4996
+ slug?: Slug;
4997
+ /** The service after the custom slug update. */
4998
+ service?: Service;
4999
+ }
5000
+ interface ValidateSlugResponse {
5001
+ /** Whether the requested slug name is valid. */
5002
+ valid?: boolean;
5003
+ /** The requested custom slug name to validate. If valid, the slug name can be set as a slug for the service and is populated with the requested slug. Otherwise, `slugName` is empty. */
5004
+ slugName?: string | null;
5005
+ /** If the slug is invalid, this field is populated with the reasons why the slug is invalid. Validation errors may include `SLUG_IS_TOO_LONG`, `SLUG_CONTAIN_ILLEGAL_CHARACTERS`, and `SLUG_ALREADY_EXISTS`. */
5006
+ errors?: InvalidSlugError[];
5007
+ }
5008
+ declare enum InvalidSlugError {
5009
+ UNKNOWN_SLUG_ERROR = "UNKNOWN_SLUG_ERROR",
5010
+ /** The provided slug name contains illegal characters. */
5011
+ SLUG_CONTAINS_ILLEGAL_CHARACTERS = "SLUG_CONTAINS_ILLEGAL_CHARACTERS",
5012
+ /** The provided slug name already exists for another service. */
5013
+ SLUG_ALREADY_EXISTS = "SLUG_ALREADY_EXISTS"
5014
+ }
5015
+ interface CloneServiceResponse {
5016
+ /** Cloned service */
5017
+ service?: Service;
5018
+ /** List of entity types that we failed to clone */
5019
+ errors?: CloneErrors[];
5020
+ }
5021
+ declare enum CloneErrors {
5022
+ UNKNOWN_CLONE_ERROR = "UNKNOWN_CLONE_ERROR",
5023
+ /** Failed to clone sessions of active service's schedule */
5024
+ SESSIONS = "SESSIONS",
5025
+ /** Failed to clone service's options and variants even though source service have them */
5026
+ OPTIONS_AND_VARIANTS = "OPTIONS_AND_VARIANTS",
5027
+ /** Failed to clone service's form */
5028
+ FORM = "FORM",
5029
+ /** Failed to clone pricing plans connected to the source service */
5030
+ PRICING_PLANS = "PRICING_PLANS"
5031
+ }
5032
+ interface BulkUpdateServicesResponseNonNullableFields {
5033
+ results: {
5034
+ itemMetadata?: {
5035
+ originalIndex: number;
5036
+ success: boolean;
5037
+ error?: {
5038
+ code: string;
5039
+ description: string;
5040
+ };
5041
+ };
5042
+ item?: {
5043
+ type: ServiceType;
5044
+ media?: {
5045
+ items: {
5046
+ image: string;
5047
+ }[];
5048
+ mainMedia?: {
5049
+ image: string;
5050
+ };
5051
+ coverMedia?: {
5052
+ image: string;
5053
+ };
5054
+ };
5055
+ category?: {
5056
+ _id: string;
5057
+ };
5058
+ form?: {
5059
+ _id: string;
5060
+ };
5061
+ payment?: {
5062
+ fixed?: {
5063
+ price?: {
5064
+ value: string;
5065
+ currency: string;
5066
+ };
5067
+ deposit?: {
5068
+ value: string;
5069
+ currency: string;
5070
+ };
5071
+ };
5072
+ varied?: {
5073
+ defaultPrice?: {
5074
+ value: string;
5075
+ currency: string;
5076
+ };
5077
+ deposit?: {
5078
+ value: string;
5079
+ currency: string;
5080
+ };
5081
+ minPrice?: {
5082
+ value: string;
5083
+ currency: string;
5084
+ };
5085
+ maxPrice?: {
5086
+ value: string;
5087
+ currency: string;
5088
+ };
5089
+ };
5090
+ rateType: RateType;
5091
+ pricingPlanIds: string[];
5092
+ };
5093
+ locations: {
5094
+ business?: {
5095
+ _id: string;
5096
+ name: string;
5097
+ };
5098
+ custom?: {
5099
+ _id: string;
5100
+ };
5101
+ _id: string;
5102
+ type: LocationTypeEnumLocationType;
5103
+ }[];
5104
+ bookingPolicy?: {
5105
+ _id: string;
5106
+ customPolicyDescription?: {
5107
+ enabled: boolean;
5108
+ description: string;
5109
+ };
5110
+ limitEarlyBookingPolicy?: {
5111
+ enabled: boolean;
5112
+ earliestBookingInMinutes: number;
5113
+ };
5114
+ limitLateBookingPolicy?: {
5115
+ enabled: boolean;
5116
+ latestBookingInMinutes: number;
5117
+ };
5118
+ bookAfterStartPolicy?: {
5119
+ enabled: boolean;
5120
+ };
5121
+ cancellationPolicy?: {
5122
+ enabled: boolean;
5123
+ limitLatestCancellation: boolean;
5124
+ latestCancellationInMinutes: number;
5125
+ };
5126
+ reschedulePolicy?: {
5127
+ enabled: boolean;
5128
+ limitLatestReschedule: boolean;
5129
+ latestRescheduleInMinutes: number;
5130
+ };
5131
+ waitlistPolicy?: {
5132
+ enabled: boolean;
5133
+ capacity: number;
5134
+ reservationTimeInMinutes: number;
5135
+ };
5136
+ participantsPolicy?: {
5137
+ maxParticipantsPerBooking: number;
5138
+ };
5139
+ resourcesPolicy?: {
5140
+ enabled: boolean;
5141
+ autoAssignAllowed: boolean;
5142
+ };
5143
+ cancellationFeePolicy?: {
5144
+ enabled: boolean;
5145
+ cancellationWindows: {
5146
+ amount?: {
5147
+ value: string;
5148
+ currency: string;
5149
+ };
5150
+ percentage: string;
5151
+ }[];
5152
+ };
5153
+ saveCreditCardPolicy?: {
5154
+ enabled: boolean;
5155
+ };
5156
+ };
5157
+ schedule?: {
5158
+ availabilityConstraints?: {
5159
+ sessionDurations: number[];
5160
+ timeBetweenSessions: number;
5161
+ };
5162
+ };
5163
+ staffMemberIds: string[];
5164
+ supportedSlugs: {
5165
+ name: string;
5166
+ }[];
5167
+ mainSlug?: {
5168
+ name: string;
5169
+ };
5170
+ urls?: {
5171
+ servicePage: string;
5172
+ bookingPage: string;
5173
+ calendarPage: string;
5174
+ };
5175
+ seoData?: {
5176
+ tags: {
5177
+ type: string;
5178
+ children: string;
5179
+ custom: boolean;
5180
+ disabled: boolean;
5181
+ }[];
5182
+ settings?: {
5183
+ preventAutoRedirect: boolean;
5184
+ keywords: {
5185
+ term: string;
5186
+ isMain: boolean;
5187
+ }[];
5188
+ };
5189
+ };
5190
+ };
5191
+ }[];
5192
+ bulkActionMetadata?: {
5193
+ totalSuccesses: number;
5194
+ totalFailures: number;
5195
+ undetailedFailures: number;
5196
+ };
5197
+ }
5198
+ interface BulkDeleteServicesResponseNonNullableFields {
5199
+ results: {
5200
+ itemMetadata?: {
5201
+ originalIndex: number;
5202
+ success: boolean;
5203
+ error?: {
5204
+ code: string;
5205
+ description: string;
5206
+ };
5207
+ };
5208
+ item?: {
5209
+ type: ServiceType;
5210
+ media?: {
5211
+ items: {
5212
+ image: string;
5213
+ }[];
5214
+ mainMedia?: {
5215
+ image: string;
5216
+ };
5217
+ coverMedia?: {
5218
+ image: string;
5219
+ };
5220
+ };
5221
+ category?: {
5222
+ _id: string;
5223
+ };
5224
+ form?: {
5225
+ _id: string;
5226
+ };
5227
+ payment?: {
5228
+ fixed?: {
5229
+ price?: {
5230
+ value: string;
5231
+ currency: string;
5232
+ };
5233
+ deposit?: {
5234
+ value: string;
5235
+ currency: string;
5236
+ };
5237
+ };
5238
+ varied?: {
5239
+ defaultPrice?: {
5240
+ value: string;
5241
+ currency: string;
5242
+ };
5243
+ deposit?: {
5244
+ value: string;
5245
+ currency: string;
5246
+ };
5247
+ minPrice?: {
5248
+ value: string;
5249
+ currency: string;
5250
+ };
5251
+ maxPrice?: {
5252
+ value: string;
5253
+ currency: string;
5254
+ };
5255
+ };
5256
+ rateType: RateType;
5257
+ pricingPlanIds: string[];
5258
+ };
5259
+ locations: {
5260
+ business?: {
5261
+ _id: string;
5262
+ name: string;
5263
+ };
5264
+ custom?: {
5265
+ _id: string;
5266
+ };
5267
+ _id: string;
5268
+ type: LocationTypeEnumLocationType;
5269
+ }[];
5270
+ bookingPolicy?: {
5271
+ _id: string;
5272
+ customPolicyDescription?: {
5273
+ enabled: boolean;
5274
+ description: string;
5275
+ };
5276
+ limitEarlyBookingPolicy?: {
5277
+ enabled: boolean;
5278
+ earliestBookingInMinutes: number;
5279
+ };
5280
+ limitLateBookingPolicy?: {
5281
+ enabled: boolean;
5282
+ latestBookingInMinutes: number;
5283
+ };
5284
+ bookAfterStartPolicy?: {
5285
+ enabled: boolean;
5286
+ };
5287
+ cancellationPolicy?: {
5288
+ enabled: boolean;
5289
+ limitLatestCancellation: boolean;
5290
+ latestCancellationInMinutes: number;
5291
+ };
5292
+ reschedulePolicy?: {
5293
+ enabled: boolean;
5294
+ limitLatestReschedule: boolean;
5295
+ latestRescheduleInMinutes: number;
5296
+ };
5297
+ waitlistPolicy?: {
5298
+ enabled: boolean;
5299
+ capacity: number;
5300
+ reservationTimeInMinutes: number;
5301
+ };
5302
+ participantsPolicy?: {
5303
+ maxParticipantsPerBooking: number;
5304
+ };
5305
+ resourcesPolicy?: {
5306
+ enabled: boolean;
5307
+ autoAssignAllowed: boolean;
5308
+ };
5309
+ cancellationFeePolicy?: {
5310
+ enabled: boolean;
5311
+ cancellationWindows: {
5312
+ amount?: {
5313
+ value: string;
5314
+ currency: string;
5315
+ };
5316
+ percentage: string;
5317
+ }[];
5318
+ };
5319
+ saveCreditCardPolicy?: {
5320
+ enabled: boolean;
5321
+ };
5322
+ };
5323
+ schedule?: {
5324
+ availabilityConstraints?: {
5325
+ sessionDurations: number[];
5326
+ timeBetweenSessions: number;
5327
+ };
5328
+ };
5329
+ staffMemberIds: string[];
5330
+ supportedSlugs: {
5331
+ name: string;
5332
+ }[];
5333
+ mainSlug?: {
5334
+ name: string;
5335
+ };
5336
+ urls?: {
5337
+ servicePage: string;
5338
+ bookingPage: string;
5339
+ calendarPage: string;
5340
+ };
5341
+ seoData?: {
5342
+ tags: {
5343
+ type: string;
5344
+ children: string;
5345
+ custom: boolean;
5346
+ disabled: boolean;
5347
+ }[];
5348
+ settings?: {
5349
+ preventAutoRedirect: boolean;
5350
+ keywords: {
5351
+ term: string;
5352
+ isMain: boolean;
5353
+ }[];
5354
+ };
5355
+ };
5356
+ };
5357
+ }[];
5358
+ bulkActionMetadata?: {
5359
+ totalSuccesses: number;
5360
+ totalFailures: number;
5361
+ undetailedFailures: number;
5362
+ };
5363
+ }
5364
+ interface SearchServicesResponseNonNullableFields {
5365
+ services: {
5366
+ type: ServiceType;
5367
+ media?: {
5368
+ items: {
5369
+ image: string;
5370
+ }[];
5371
+ mainMedia?: {
5372
+ image: string;
5373
+ };
5374
+ coverMedia?: {
5375
+ image: string;
5376
+ };
5377
+ };
5378
+ category?: {
5379
+ _id: string;
5380
+ };
5381
+ form?: {
5382
+ _id: string;
5383
+ };
5384
+ payment?: {
5385
+ fixed?: {
5386
+ price?: {
5387
+ value: string;
5388
+ currency: string;
5389
+ };
5390
+ deposit?: {
5391
+ value: string;
5392
+ currency: string;
5393
+ };
5394
+ };
5395
+ varied?: {
5396
+ defaultPrice?: {
5397
+ value: string;
5398
+ currency: string;
5399
+ };
5400
+ deposit?: {
5401
+ value: string;
5402
+ currency: string;
5403
+ };
5404
+ minPrice?: {
5405
+ value: string;
5406
+ currency: string;
5407
+ };
5408
+ maxPrice?: {
5409
+ value: string;
5410
+ currency: string;
5411
+ };
5412
+ };
5413
+ rateType: RateType;
5414
+ pricingPlanIds: string[];
5415
+ };
5416
+ locations: {
5417
+ business?: {
5418
+ _id: string;
5419
+ name: string;
5420
+ };
5421
+ custom?: {
5422
+ _id: string;
5423
+ };
5424
+ _id: string;
5425
+ type: LocationTypeEnumLocationType;
5426
+ }[];
5427
+ bookingPolicy?: {
5428
+ _id: string;
5429
+ customPolicyDescription?: {
5430
+ enabled: boolean;
5431
+ description: string;
5432
+ };
5433
+ limitEarlyBookingPolicy?: {
5434
+ enabled: boolean;
5435
+ earliestBookingInMinutes: number;
5436
+ };
5437
+ limitLateBookingPolicy?: {
5438
+ enabled: boolean;
5439
+ latestBookingInMinutes: number;
5440
+ };
5441
+ bookAfterStartPolicy?: {
5442
+ enabled: boolean;
5443
+ };
5444
+ cancellationPolicy?: {
5445
+ enabled: boolean;
5446
+ limitLatestCancellation: boolean;
5447
+ latestCancellationInMinutes: number;
5448
+ };
5449
+ reschedulePolicy?: {
5450
+ enabled: boolean;
5451
+ limitLatestReschedule: boolean;
5452
+ latestRescheduleInMinutes: number;
5453
+ };
5454
+ waitlistPolicy?: {
5455
+ enabled: boolean;
5456
+ capacity: number;
5457
+ reservationTimeInMinutes: number;
5458
+ };
5459
+ participantsPolicy?: {
5460
+ maxParticipantsPerBooking: number;
5461
+ };
5462
+ resourcesPolicy?: {
5463
+ enabled: boolean;
5464
+ autoAssignAllowed: boolean;
5465
+ };
5466
+ cancellationFeePolicy?: {
5467
+ enabled: boolean;
5468
+ cancellationWindows: {
5469
+ amount?: {
5470
+ value: string;
5471
+ currency: string;
5472
+ };
5473
+ percentage: string;
5474
+ }[];
5475
+ };
5476
+ saveCreditCardPolicy?: {
5477
+ enabled: boolean;
5478
+ };
5479
+ };
5480
+ schedule?: {
5481
+ availabilityConstraints?: {
5482
+ sessionDurations: number[];
5483
+ timeBetweenSessions: number;
5484
+ };
5485
+ };
5486
+ staffMemberIds: string[];
5487
+ supportedSlugs: {
5488
+ name: string;
5489
+ }[];
5490
+ mainSlug?: {
5491
+ name: string;
5492
+ };
5493
+ urls?: {
5494
+ servicePage: string;
5495
+ bookingPage: string;
5496
+ calendarPage: string;
5497
+ };
5498
+ seoData?: {
5499
+ tags: {
5500
+ type: string;
5501
+ children: string;
5502
+ custom: boolean;
5503
+ disabled: boolean;
5504
+ }[];
5505
+ settings?: {
5506
+ preventAutoRedirect: boolean;
5507
+ keywords: {
5508
+ term: string;
5509
+ isMain: boolean;
5510
+ }[];
5511
+ };
5512
+ };
5513
+ }[];
5514
+ aggregationData?: {
5515
+ results: {
5516
+ values?: {
5517
+ results: {
5518
+ value: string;
5519
+ count: number;
5520
+ }[];
5521
+ };
5522
+ ranges?: {
5523
+ results: {
5524
+ count: number;
5525
+ }[];
5526
+ };
5527
+ scalar?: {
5528
+ type: ScalarType;
5529
+ value: number;
5530
+ };
5531
+ groupedByValue?: {
5532
+ results: {
5533
+ value: string;
5534
+ nestedResults?: {
5535
+ values?: {
5536
+ results: {
5537
+ value: string;
5538
+ count: number;
5539
+ }[];
5540
+ };
5541
+ ranges?: {
5542
+ results: {
5543
+ count: number;
5544
+ }[];
5545
+ };
5546
+ scalar?: {
5547
+ type: ScalarType;
5548
+ value: number;
5549
+ };
5550
+ name: string;
5551
+ type: AggregationType;
5552
+ fieldPath: string;
5553
+ };
5554
+ }[];
5555
+ };
5556
+ dateHistogram?: {
5557
+ results: {
5558
+ value: string;
5559
+ count: number;
5560
+ }[];
5561
+ };
5562
+ nested?: {
5563
+ results: {
5564
+ results?: {
5565
+ value?: {
5566
+ value: string;
5567
+ };
5568
+ scalar?: {
5569
+ value: number;
5570
+ };
5571
+ dateHistogram?: {
5572
+ value: string;
5573
+ };
5574
+ };
5575
+ }[];
5576
+ };
5577
+ name: string;
5578
+ type: AggregationType;
5579
+ fieldPath: string;
5580
+ }[];
5581
+ };
5582
+ }
5583
+ interface QueryPoliciesResponseNonNullableFields {
5584
+ bookingPolicies: {
5585
+ bookingPolicy?: {
5586
+ _id: string;
5587
+ customPolicyDescription?: {
5588
+ enabled: boolean;
5589
+ description: string;
5590
+ };
5591
+ limitEarlyBookingPolicy?: {
5592
+ enabled: boolean;
5593
+ earliestBookingInMinutes: number;
5594
+ };
5595
+ limitLateBookingPolicy?: {
5596
+ enabled: boolean;
5597
+ latestBookingInMinutes: number;
5598
+ };
5599
+ bookAfterStartPolicy?: {
5600
+ enabled: boolean;
5601
+ };
5602
+ cancellationPolicy?: {
5603
+ enabled: boolean;
5604
+ limitLatestCancellation: boolean;
5605
+ latestCancellationInMinutes: number;
5606
+ };
5607
+ reschedulePolicy?: {
5608
+ enabled: boolean;
5609
+ limitLatestReschedule: boolean;
5610
+ latestRescheduleInMinutes: number;
5611
+ };
5612
+ waitlistPolicy?: {
5613
+ enabled: boolean;
5614
+ capacity: number;
5615
+ reservationTimeInMinutes: number;
5616
+ };
5617
+ participantsPolicy?: {
5618
+ maxParticipantsPerBooking: number;
5619
+ };
5620
+ resourcesPolicy?: {
5621
+ enabled: boolean;
5622
+ autoAssignAllowed: boolean;
5623
+ };
5624
+ cancellationFeePolicy?: {
5625
+ enabled: boolean;
5626
+ cancellationWindows: {
5627
+ amount?: {
5628
+ value: string;
5629
+ currency: string;
5630
+ };
5631
+ percentage: string;
5632
+ }[];
5633
+ };
5634
+ saveCreditCardPolicy?: {
5635
+ enabled: boolean;
5636
+ };
5637
+ };
5638
+ services: {
5639
+ type: ServiceType;
5640
+ media?: {
5641
+ items: {
5642
+ image: string;
5643
+ }[];
5644
+ mainMedia?: {
5645
+ image: string;
5646
+ };
5647
+ coverMedia?: {
5648
+ image: string;
5649
+ };
5650
+ };
5651
+ category?: {
5652
+ _id: string;
5653
+ };
5654
+ form?: {
5655
+ _id: string;
5656
+ };
5657
+ payment?: {
5658
+ fixed?: {
5659
+ price?: {
5660
+ value: string;
5661
+ currency: string;
5662
+ };
5663
+ deposit?: {
5664
+ value: string;
5665
+ currency: string;
5666
+ };
5667
+ };
5668
+ varied?: {
5669
+ defaultPrice?: {
5670
+ value: string;
5671
+ currency: string;
5672
+ };
5673
+ deposit?: {
5674
+ value: string;
5675
+ currency: string;
5676
+ };
5677
+ minPrice?: {
5678
+ value: string;
5679
+ currency: string;
5680
+ };
5681
+ maxPrice?: {
5682
+ value: string;
5683
+ currency: string;
5684
+ };
5685
+ };
5686
+ rateType: RateType;
5687
+ pricingPlanIds: string[];
5688
+ };
5689
+ locations: {
5690
+ business?: {
5691
+ _id: string;
5692
+ name: string;
5693
+ };
5694
+ custom?: {
5695
+ _id: string;
5696
+ };
5697
+ _id: string;
5698
+ type: LocationTypeEnumLocationType;
5699
+ }[];
5700
+ bookingPolicy?: {
5701
+ _id: string;
5702
+ customPolicyDescription?: {
5703
+ enabled: boolean;
5704
+ description: string;
5705
+ };
5706
+ limitEarlyBookingPolicy?: {
5707
+ enabled: boolean;
5708
+ earliestBookingInMinutes: number;
5709
+ };
5710
+ limitLateBookingPolicy?: {
5711
+ enabled: boolean;
5712
+ latestBookingInMinutes: number;
5713
+ };
5714
+ bookAfterStartPolicy?: {
5715
+ enabled: boolean;
5716
+ };
5717
+ cancellationPolicy?: {
5718
+ enabled: boolean;
5719
+ limitLatestCancellation: boolean;
5720
+ latestCancellationInMinutes: number;
5721
+ };
5722
+ reschedulePolicy?: {
5723
+ enabled: boolean;
5724
+ limitLatestReschedule: boolean;
5725
+ latestRescheduleInMinutes: number;
5726
+ };
5727
+ waitlistPolicy?: {
5728
+ enabled: boolean;
5729
+ capacity: number;
5730
+ reservationTimeInMinutes: number;
5731
+ };
5732
+ participantsPolicy?: {
5733
+ maxParticipantsPerBooking: number;
5734
+ };
5735
+ resourcesPolicy?: {
5736
+ enabled: boolean;
5737
+ autoAssignAllowed: boolean;
5738
+ };
5739
+ cancellationFeePolicy?: {
5740
+ enabled: boolean;
5741
+ cancellationWindows: {
5742
+ amount?: {
5743
+ value: string;
5744
+ currency: string;
5745
+ };
5746
+ percentage: string;
5747
+ }[];
5748
+ };
5749
+ saveCreditCardPolicy?: {
5750
+ enabled: boolean;
5751
+ };
5752
+ };
5753
+ schedule?: {
5754
+ availabilityConstraints?: {
5755
+ sessionDurations: number[];
5756
+ timeBetweenSessions: number;
5757
+ };
5758
+ };
5759
+ staffMemberIds: string[];
5760
+ supportedSlugs: {
5761
+ name: string;
5762
+ }[];
5763
+ mainSlug?: {
5764
+ name: string;
5765
+ };
5766
+ urls?: {
5767
+ servicePage: string;
5768
+ bookingPage: string;
5769
+ calendarPage: string;
5770
+ };
5771
+ seoData?: {
5772
+ tags: {
5773
+ type: string;
5774
+ children: string;
5775
+ custom: boolean;
5776
+ disabled: boolean;
5777
+ }[];
5778
+ settings?: {
5779
+ preventAutoRedirect: boolean;
5780
+ keywords: {
5781
+ term: string;
5782
+ isMain: boolean;
5783
+ }[];
5784
+ };
5785
+ };
5786
+ }[];
5787
+ countOfServices: number;
5788
+ }[];
5789
+ }
5790
+ interface CountServicesResponseNonNullableFields {
5791
+ count: number;
5792
+ }
5793
+ interface SetServiceLocationsResponseNonNullableFields {
5794
+ service?: {
5795
+ type: ServiceType;
5796
+ media?: {
5797
+ items: {
5798
+ image: string;
5799
+ }[];
5800
+ mainMedia?: {
5801
+ image: string;
5802
+ };
5803
+ coverMedia?: {
5804
+ image: string;
5805
+ };
5806
+ };
5807
+ category?: {
5808
+ _id: string;
5809
+ };
5810
+ form?: {
5811
+ _id: string;
5812
+ };
5813
+ payment?: {
5814
+ fixed?: {
5815
+ price?: {
5816
+ value: string;
5817
+ currency: string;
5818
+ };
5819
+ deposit?: {
5820
+ value: string;
5821
+ currency: string;
5822
+ };
5823
+ };
5824
+ varied?: {
5825
+ defaultPrice?: {
5826
+ value: string;
5827
+ currency: string;
5828
+ };
5829
+ deposit?: {
5830
+ value: string;
5831
+ currency: string;
5832
+ };
5833
+ minPrice?: {
5834
+ value: string;
5835
+ currency: string;
5836
+ };
5837
+ maxPrice?: {
5838
+ value: string;
5839
+ currency: string;
5840
+ };
5841
+ };
5842
+ rateType: RateType;
5843
+ pricingPlanIds: string[];
5844
+ };
5845
+ locations: {
5846
+ business?: {
5847
+ _id: string;
5848
+ name: string;
5849
+ };
5850
+ custom?: {
5851
+ _id: string;
5852
+ };
5853
+ _id: string;
5854
+ type: LocationTypeEnumLocationType;
5855
+ }[];
5856
+ bookingPolicy?: {
5857
+ _id: string;
5858
+ customPolicyDescription?: {
5859
+ enabled: boolean;
5860
+ description: string;
5861
+ };
5862
+ limitEarlyBookingPolicy?: {
5863
+ enabled: boolean;
5864
+ earliestBookingInMinutes: number;
5865
+ };
5866
+ limitLateBookingPolicy?: {
5867
+ enabled: boolean;
5868
+ latestBookingInMinutes: number;
5869
+ };
5870
+ bookAfterStartPolicy?: {
5871
+ enabled: boolean;
5872
+ };
5873
+ cancellationPolicy?: {
5874
+ enabled: boolean;
5875
+ limitLatestCancellation: boolean;
5876
+ latestCancellationInMinutes: number;
5877
+ };
5878
+ reschedulePolicy?: {
5879
+ enabled: boolean;
5880
+ limitLatestReschedule: boolean;
5881
+ latestRescheduleInMinutes: number;
5882
+ };
5883
+ waitlistPolicy?: {
5884
+ enabled: boolean;
5885
+ capacity: number;
5886
+ reservationTimeInMinutes: number;
5887
+ };
5888
+ participantsPolicy?: {
5889
+ maxParticipantsPerBooking: number;
5890
+ };
5891
+ resourcesPolicy?: {
5892
+ enabled: boolean;
5893
+ autoAssignAllowed: boolean;
5894
+ };
5895
+ cancellationFeePolicy?: {
5896
+ enabled: boolean;
5897
+ cancellationWindows: {
5898
+ amount?: {
5899
+ value: string;
5900
+ currency: string;
5901
+ };
5902
+ percentage: string;
5903
+ }[];
5904
+ };
5905
+ saveCreditCardPolicy?: {
5906
+ enabled: boolean;
5907
+ };
5908
+ };
5909
+ schedule?: {
5910
+ availabilityConstraints?: {
5911
+ sessionDurations: number[];
5912
+ timeBetweenSessions: number;
5913
+ };
5914
+ };
5915
+ staffMemberIds: string[];
5916
+ supportedSlugs: {
5917
+ name: string;
5918
+ }[];
5919
+ mainSlug?: {
5920
+ name: string;
5921
+ };
5922
+ urls?: {
5923
+ servicePage: string;
5924
+ bookingPage: string;
5925
+ calendarPage: string;
5926
+ };
5927
+ seoData?: {
5928
+ tags: {
5929
+ type: string;
5930
+ children: string;
5931
+ custom: boolean;
5932
+ disabled: boolean;
5933
+ }[];
5934
+ settings?: {
5935
+ preventAutoRedirect: boolean;
5936
+ keywords: {
5937
+ term: string;
5938
+ isMain: boolean;
5939
+ }[];
5940
+ };
5941
+ };
5942
+ };
5943
+ }
5944
+ interface EnablePricingPlansForServiceResponseNonNullableFields {
5945
+ pricingPlanIds: string[];
5946
+ service?: {
5947
+ type: ServiceType;
5948
+ media?: {
5949
+ items: {
5950
+ image: string;
5951
+ }[];
5952
+ mainMedia?: {
5953
+ image: string;
5954
+ };
5955
+ coverMedia?: {
5956
+ image: string;
5957
+ };
5958
+ };
5959
+ category?: {
5960
+ _id: string;
5961
+ };
5962
+ form?: {
5963
+ _id: string;
5964
+ };
5965
+ payment?: {
5966
+ fixed?: {
5967
+ price?: {
5968
+ value: string;
5969
+ currency: string;
5970
+ };
5971
+ deposit?: {
5972
+ value: string;
5973
+ currency: string;
5974
+ };
5975
+ };
5976
+ varied?: {
5977
+ defaultPrice?: {
5978
+ value: string;
5979
+ currency: string;
5980
+ };
5981
+ deposit?: {
5982
+ value: string;
5983
+ currency: string;
5984
+ };
5985
+ minPrice?: {
5986
+ value: string;
5987
+ currency: string;
5988
+ };
5989
+ maxPrice?: {
5990
+ value: string;
5991
+ currency: string;
5992
+ };
5993
+ };
5994
+ rateType: RateType;
5995
+ pricingPlanIds: string[];
5996
+ };
5997
+ locations: {
5998
+ business?: {
5999
+ _id: string;
6000
+ name: string;
6001
+ };
6002
+ custom?: {
6003
+ _id: string;
6004
+ };
6005
+ _id: string;
6006
+ type: LocationTypeEnumLocationType;
6007
+ }[];
6008
+ bookingPolicy?: {
6009
+ _id: string;
6010
+ customPolicyDescription?: {
6011
+ enabled: boolean;
6012
+ description: string;
6013
+ };
6014
+ limitEarlyBookingPolicy?: {
6015
+ enabled: boolean;
6016
+ earliestBookingInMinutes: number;
6017
+ };
6018
+ limitLateBookingPolicy?: {
6019
+ enabled: boolean;
6020
+ latestBookingInMinutes: number;
6021
+ };
6022
+ bookAfterStartPolicy?: {
6023
+ enabled: boolean;
6024
+ };
6025
+ cancellationPolicy?: {
6026
+ enabled: boolean;
6027
+ limitLatestCancellation: boolean;
6028
+ latestCancellationInMinutes: number;
6029
+ };
6030
+ reschedulePolicy?: {
6031
+ enabled: boolean;
6032
+ limitLatestReschedule: boolean;
6033
+ latestRescheduleInMinutes: number;
6034
+ };
6035
+ waitlistPolicy?: {
6036
+ enabled: boolean;
6037
+ capacity: number;
6038
+ reservationTimeInMinutes: number;
6039
+ };
6040
+ participantsPolicy?: {
6041
+ maxParticipantsPerBooking: number;
6042
+ };
6043
+ resourcesPolicy?: {
6044
+ enabled: boolean;
6045
+ autoAssignAllowed: boolean;
6046
+ };
6047
+ cancellationFeePolicy?: {
6048
+ enabled: boolean;
6049
+ cancellationWindows: {
6050
+ amount?: {
6051
+ value: string;
6052
+ currency: string;
6053
+ };
6054
+ percentage: string;
6055
+ }[];
6056
+ };
6057
+ saveCreditCardPolicy?: {
6058
+ enabled: boolean;
6059
+ };
6060
+ };
6061
+ schedule?: {
6062
+ availabilityConstraints?: {
6063
+ sessionDurations: number[];
6064
+ timeBetweenSessions: number;
6065
+ };
6066
+ };
6067
+ staffMemberIds: string[];
6068
+ supportedSlugs: {
6069
+ name: string;
6070
+ }[];
6071
+ mainSlug?: {
6072
+ name: string;
6073
+ };
6074
+ urls?: {
6075
+ servicePage: string;
6076
+ bookingPage: string;
6077
+ calendarPage: string;
6078
+ };
6079
+ seoData?: {
6080
+ tags: {
6081
+ type: string;
6082
+ children: string;
6083
+ custom: boolean;
6084
+ disabled: boolean;
6085
+ }[];
6086
+ settings?: {
6087
+ preventAutoRedirect: boolean;
6088
+ keywords: {
6089
+ term: string;
6090
+ isMain: boolean;
6091
+ }[];
6092
+ };
6093
+ };
6094
+ };
6095
+ }
6096
+ interface DisablePricingPlansForServiceResponseNonNullableFields {
6097
+ service?: {
6098
+ type: ServiceType;
6099
+ media?: {
6100
+ items: {
6101
+ image: string;
6102
+ }[];
6103
+ mainMedia?: {
6104
+ image: string;
6105
+ };
6106
+ coverMedia?: {
6107
+ image: string;
6108
+ };
6109
+ };
6110
+ category?: {
6111
+ _id: string;
6112
+ };
6113
+ form?: {
6114
+ _id: string;
6115
+ };
6116
+ payment?: {
6117
+ fixed?: {
6118
+ price?: {
6119
+ value: string;
6120
+ currency: string;
6121
+ };
6122
+ deposit?: {
6123
+ value: string;
6124
+ currency: string;
6125
+ };
6126
+ };
6127
+ varied?: {
6128
+ defaultPrice?: {
6129
+ value: string;
6130
+ currency: string;
6131
+ };
6132
+ deposit?: {
6133
+ value: string;
6134
+ currency: string;
6135
+ };
6136
+ minPrice?: {
6137
+ value: string;
6138
+ currency: string;
6139
+ };
6140
+ maxPrice?: {
6141
+ value: string;
6142
+ currency: string;
6143
+ };
6144
+ };
6145
+ rateType: RateType;
6146
+ pricingPlanIds: string[];
6147
+ };
6148
+ locations: {
6149
+ business?: {
6150
+ _id: string;
6151
+ name: string;
6152
+ };
6153
+ custom?: {
6154
+ _id: string;
6155
+ };
6156
+ _id: string;
6157
+ type: LocationTypeEnumLocationType;
6158
+ }[];
6159
+ bookingPolicy?: {
6160
+ _id: string;
6161
+ customPolicyDescription?: {
6162
+ enabled: boolean;
6163
+ description: string;
6164
+ };
6165
+ limitEarlyBookingPolicy?: {
6166
+ enabled: boolean;
6167
+ earliestBookingInMinutes: number;
6168
+ };
6169
+ limitLateBookingPolicy?: {
6170
+ enabled: boolean;
6171
+ latestBookingInMinutes: number;
6172
+ };
6173
+ bookAfterStartPolicy?: {
6174
+ enabled: boolean;
6175
+ };
6176
+ cancellationPolicy?: {
6177
+ enabled: boolean;
6178
+ limitLatestCancellation: boolean;
6179
+ latestCancellationInMinutes: number;
6180
+ };
6181
+ reschedulePolicy?: {
6182
+ enabled: boolean;
6183
+ limitLatestReschedule: boolean;
6184
+ latestRescheduleInMinutes: number;
6185
+ };
6186
+ waitlistPolicy?: {
6187
+ enabled: boolean;
6188
+ capacity: number;
6189
+ reservationTimeInMinutes: number;
6190
+ };
6191
+ participantsPolicy?: {
6192
+ maxParticipantsPerBooking: number;
6193
+ };
6194
+ resourcesPolicy?: {
6195
+ enabled: boolean;
6196
+ autoAssignAllowed: boolean;
6197
+ };
6198
+ cancellationFeePolicy?: {
6199
+ enabled: boolean;
6200
+ cancellationWindows: {
6201
+ amount?: {
6202
+ value: string;
6203
+ currency: string;
6204
+ };
6205
+ percentage: string;
6206
+ }[];
6207
+ };
6208
+ saveCreditCardPolicy?: {
6209
+ enabled: boolean;
6210
+ };
6211
+ };
6212
+ schedule?: {
6213
+ availabilityConstraints?: {
6214
+ sessionDurations: number[];
6215
+ timeBetweenSessions: number;
6216
+ };
6217
+ };
6218
+ staffMemberIds: string[];
6219
+ supportedSlugs: {
6220
+ name: string;
6221
+ }[];
6222
+ mainSlug?: {
6223
+ name: string;
6224
+ };
6225
+ urls?: {
6226
+ servicePage: string;
6227
+ bookingPage: string;
6228
+ calendarPage: string;
6229
+ };
6230
+ seoData?: {
6231
+ tags: {
6232
+ type: string;
6233
+ children: string;
6234
+ custom: boolean;
6235
+ disabled: boolean;
6236
+ }[];
6237
+ settings?: {
6238
+ preventAutoRedirect: boolean;
6239
+ keywords: {
6240
+ term: string;
6241
+ isMain: boolean;
6242
+ }[];
6243
+ };
6244
+ };
6245
+ };
6246
+ }
6247
+ interface SetCustomSlugResponseNonNullableFields {
6248
+ slug?: {
6249
+ name: string;
6250
+ };
6251
+ service?: {
6252
+ type: ServiceType;
6253
+ media?: {
6254
+ items: {
6255
+ image: string;
6256
+ }[];
6257
+ mainMedia?: {
6258
+ image: string;
6259
+ };
6260
+ coverMedia?: {
6261
+ image: string;
6262
+ };
6263
+ };
6264
+ category?: {
6265
+ _id: string;
6266
+ };
6267
+ form?: {
6268
+ _id: string;
6269
+ };
6270
+ payment?: {
6271
+ fixed?: {
6272
+ price?: {
6273
+ value: string;
6274
+ currency: string;
6275
+ };
6276
+ deposit?: {
6277
+ value: string;
6278
+ currency: string;
6279
+ };
6280
+ };
6281
+ varied?: {
6282
+ defaultPrice?: {
6283
+ value: string;
6284
+ currency: string;
6285
+ };
6286
+ deposit?: {
6287
+ value: string;
6288
+ currency: string;
6289
+ };
6290
+ minPrice?: {
6291
+ value: string;
6292
+ currency: string;
6293
+ };
6294
+ maxPrice?: {
6295
+ value: string;
6296
+ currency: string;
6297
+ };
6298
+ };
6299
+ rateType: RateType;
6300
+ pricingPlanIds: string[];
6301
+ };
6302
+ locations: {
6303
+ business?: {
6304
+ _id: string;
6305
+ name: string;
6306
+ };
6307
+ custom?: {
6308
+ _id: string;
6309
+ };
6310
+ _id: string;
6311
+ type: LocationTypeEnumLocationType;
6312
+ }[];
6313
+ bookingPolicy?: {
6314
+ _id: string;
6315
+ customPolicyDescription?: {
6316
+ enabled: boolean;
6317
+ description: string;
6318
+ };
6319
+ limitEarlyBookingPolicy?: {
6320
+ enabled: boolean;
6321
+ earliestBookingInMinutes: number;
6322
+ };
6323
+ limitLateBookingPolicy?: {
6324
+ enabled: boolean;
6325
+ latestBookingInMinutes: number;
6326
+ };
6327
+ bookAfterStartPolicy?: {
6328
+ enabled: boolean;
6329
+ };
6330
+ cancellationPolicy?: {
6331
+ enabled: boolean;
6332
+ limitLatestCancellation: boolean;
6333
+ latestCancellationInMinutes: number;
6334
+ };
6335
+ reschedulePolicy?: {
6336
+ enabled: boolean;
6337
+ limitLatestReschedule: boolean;
6338
+ latestRescheduleInMinutes: number;
6339
+ };
6340
+ waitlistPolicy?: {
6341
+ enabled: boolean;
6342
+ capacity: number;
6343
+ reservationTimeInMinutes: number;
6344
+ };
6345
+ participantsPolicy?: {
6346
+ maxParticipantsPerBooking: number;
6347
+ };
6348
+ resourcesPolicy?: {
6349
+ enabled: boolean;
6350
+ autoAssignAllowed: boolean;
6351
+ };
6352
+ cancellationFeePolicy?: {
6353
+ enabled: boolean;
6354
+ cancellationWindows: {
6355
+ amount?: {
6356
+ value: string;
6357
+ currency: string;
6358
+ };
6359
+ percentage: string;
6360
+ }[];
6361
+ };
6362
+ saveCreditCardPolicy?: {
6363
+ enabled: boolean;
6364
+ };
6365
+ };
6366
+ schedule?: {
6367
+ availabilityConstraints?: {
6368
+ sessionDurations: number[];
6369
+ timeBetweenSessions: number;
6370
+ };
6371
+ };
6372
+ staffMemberIds: string[];
6373
+ supportedSlugs: {
6374
+ name: string;
6375
+ }[];
6376
+ mainSlug?: {
6377
+ name: string;
6378
+ };
6379
+ urls?: {
6380
+ servicePage: string;
6381
+ bookingPage: string;
6382
+ calendarPage: string;
6383
+ };
6384
+ seoData?: {
6385
+ tags: {
6386
+ type: string;
6387
+ children: string;
6388
+ custom: boolean;
6389
+ disabled: boolean;
6390
+ }[];
6391
+ settings?: {
6392
+ preventAutoRedirect: boolean;
6393
+ keywords: {
6394
+ term: string;
6395
+ isMain: boolean;
6396
+ }[];
6397
+ };
6398
+ };
6399
+ };
6400
+ }
6401
+ interface ValidateSlugResponseNonNullableFields {
6402
+ valid: boolean;
6403
+ errors: InvalidSlugError[];
6404
+ }
6405
+ interface CloneServiceResponseNonNullableFields {
6406
+ service?: {
6407
+ type: ServiceType;
6408
+ media?: {
6409
+ items: {
6410
+ image: string;
6411
+ }[];
6412
+ mainMedia?: {
6413
+ image: string;
6414
+ };
6415
+ coverMedia?: {
6416
+ image: string;
6417
+ };
6418
+ };
6419
+ category?: {
6420
+ _id: string;
6421
+ };
6422
+ form?: {
6423
+ _id: string;
6424
+ };
6425
+ payment?: {
6426
+ fixed?: {
6427
+ price?: {
6428
+ value: string;
6429
+ currency: string;
6430
+ };
6431
+ deposit?: {
6432
+ value: string;
6433
+ currency: string;
6434
+ };
6435
+ };
6436
+ varied?: {
6437
+ defaultPrice?: {
6438
+ value: string;
6439
+ currency: string;
6440
+ };
6441
+ deposit?: {
6442
+ value: string;
6443
+ currency: string;
6444
+ };
6445
+ minPrice?: {
6446
+ value: string;
6447
+ currency: string;
6448
+ };
6449
+ maxPrice?: {
6450
+ value: string;
6451
+ currency: string;
6452
+ };
6453
+ };
6454
+ rateType: RateType;
6455
+ pricingPlanIds: string[];
6456
+ };
6457
+ locations: {
6458
+ business?: {
6459
+ _id: string;
6460
+ name: string;
6461
+ };
6462
+ custom?: {
6463
+ _id: string;
6464
+ };
6465
+ _id: string;
6466
+ type: LocationTypeEnumLocationType;
6467
+ }[];
6468
+ bookingPolicy?: {
6469
+ _id: string;
6470
+ customPolicyDescription?: {
6471
+ enabled: boolean;
6472
+ description: string;
6473
+ };
6474
+ limitEarlyBookingPolicy?: {
6475
+ enabled: boolean;
6476
+ earliestBookingInMinutes: number;
6477
+ };
6478
+ limitLateBookingPolicy?: {
6479
+ enabled: boolean;
6480
+ latestBookingInMinutes: number;
6481
+ };
6482
+ bookAfterStartPolicy?: {
6483
+ enabled: boolean;
6484
+ };
6485
+ cancellationPolicy?: {
6486
+ enabled: boolean;
6487
+ limitLatestCancellation: boolean;
6488
+ latestCancellationInMinutes: number;
6489
+ };
6490
+ reschedulePolicy?: {
6491
+ enabled: boolean;
6492
+ limitLatestReschedule: boolean;
6493
+ latestRescheduleInMinutes: number;
6494
+ };
6495
+ waitlistPolicy?: {
6496
+ enabled: boolean;
6497
+ capacity: number;
6498
+ reservationTimeInMinutes: number;
6499
+ };
6500
+ participantsPolicy?: {
6501
+ maxParticipantsPerBooking: number;
6502
+ };
6503
+ resourcesPolicy?: {
6504
+ enabled: boolean;
6505
+ autoAssignAllowed: boolean;
6506
+ };
6507
+ cancellationFeePolicy?: {
6508
+ enabled: boolean;
6509
+ cancellationWindows: {
6510
+ amount?: {
6511
+ value: string;
6512
+ currency: string;
6513
+ };
6514
+ percentage: string;
6515
+ }[];
6516
+ };
6517
+ saveCreditCardPolicy?: {
6518
+ enabled: boolean;
6519
+ };
6520
+ };
6521
+ schedule?: {
6522
+ availabilityConstraints?: {
6523
+ sessionDurations: number[];
6524
+ timeBetweenSessions: number;
6525
+ };
6526
+ };
6527
+ staffMemberIds: string[];
6528
+ supportedSlugs: {
6529
+ name: string;
6530
+ }[];
6531
+ mainSlug?: {
6532
+ name: string;
6533
+ };
6534
+ urls?: {
6535
+ servicePage: string;
6536
+ bookingPage: string;
6537
+ calendarPage: string;
6538
+ };
6539
+ seoData?: {
6540
+ tags: {
6541
+ type: string;
6542
+ children: string;
6543
+ custom: boolean;
6544
+ disabled: boolean;
6545
+ }[];
6546
+ settings?: {
6547
+ preventAutoRedirect: boolean;
6548
+ keywords: {
6549
+ term: string;
6550
+ isMain: boolean;
6551
+ }[];
6552
+ };
6553
+ };
6554
+ };
6555
+ errors: CloneErrors[];
6556
+ }
6557
+ interface BaseEventMetadata$2 {
6558
+ /** App instance ID. */
6559
+ instanceId?: string | null;
6560
+ /** Event type. */
6561
+ eventType?: string;
6562
+ /** The identification type and identity data. */
6563
+ identity?: IdentificationData$3;
6564
+ }
6565
+ interface EventMetadata$1 extends BaseEventMetadata$2 {
6566
+ /**
6567
+ * Unique event ID.
6568
+ * Allows clients to ignore duplicate webhooks.
6569
+ */
6570
+ _id?: string;
6571
+ /**
6572
+ * Assumes actions are also always typed to an entity_type
6573
+ * Example: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction
6574
+ */
6575
+ entityFqdn?: string;
6576
+ /**
6577
+ * This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)
6578
+ * This is although the created/updated/deleted notion is duplication of the oneof types
6579
+ * Example: created/updated/deleted/started/completed/email_opened
6580
+ */
6581
+ slug?: string;
6582
+ /** ID of the entity associated with the event. */
6583
+ entityId?: string;
6584
+ /** Event timestamp. */
6585
+ eventTime?: Date;
6586
+ /**
6587
+ * Whether the event was triggered as a result of a privacy regulation application
6588
+ * (for example, GDPR).
6589
+ */
6590
+ triggeredByAnonymizeRequest?: boolean | null;
6591
+ /** If present, indicates the action that triggered the event. */
6592
+ originatedFrom?: string | null;
6593
+ /**
6594
+ * A sequence number defining the order of updates to the underlying entity.
6595
+ * For example, given that some entity was updated at 16:00 and than again at 16:01,
6596
+ * it is guaranteed that the sequence number of the second update is strictly higher than the first.
6597
+ * As the consumer, you can use this value to ensure that you handle messages in the correct order.
6598
+ * To do so, you will need to persist this number on your end, and compare the sequence number from the
6599
+ * message against the one you have stored. Given that the stored number is higher, you should ignore the message.
6600
+ */
6601
+ entityEventSequence?: string | null;
6602
+ }
6603
+ interface ServiceCreatedEnvelope {
6604
+ entity: Service;
6605
+ metadata: EventMetadata$1;
6606
+ }
6607
+ interface ServiceUpdatedEnvelope {
6608
+ entity: Service;
6609
+ metadata: EventMetadata$1;
6610
+ }
6611
+ interface ServiceDeletedEnvelope {
6612
+ metadata: EventMetadata$1;
6613
+ }
6614
+ interface UpdateService {
6615
+ /**
6616
+ * Service ID.
6617
+ * @readonly
6618
+ */
6619
+ _id?: string | null;
6620
+ /** Service type. */
6621
+ type?: ServiceType;
6622
+ /** Order of a service within a category. */
6623
+ sortOrder?: number | null;
6624
+ name?: string | null;
6625
+ description?: string | null;
6626
+ tagLine?: string | null;
6627
+ /** Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity. */
6628
+ defaultCapacity?: number | null;
6629
+ /** Media associated with the service. */
6630
+ media?: Media;
6631
+ /** Whether the service is hidden from the site. */
6632
+ hidden?: boolean | null;
6633
+ /** The category the service is associated with. */
6634
+ category?: V2Category;
6635
+ /** The form used when booking the service. */
6636
+ form?: Form;
6637
+ /** Payment options for booking the service. */
6638
+ payment?: Payment;
6639
+ /** Online booking settings. */
6640
+ onlineBooking?: OnlineBooking;
6641
+ /** Conferencing options for this service. */
6642
+ conferencing?: Conferencing;
6643
+ /**
6644
+ * The locations this service is offered at.
6645
+ * In case of multiple (more than 1) location, All locations must be of type `BUSINESS`.
6646
+ * For courses only: Currently, only 1 location is supported, for all location types.
6647
+ */
6648
+ locations?: V2Location[];
6649
+ /** Policy 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. */
6650
+ bookingPolicy?: BookingPolicy;
6651
+ /** The service's schedule, which can be used to manage the service's sessions. */
6652
+ schedule?: V2Schedule;
6653
+ /** IDs of the staff members providing the service. For appointments only. */
6654
+ staffMemberIds?: string[];
4629
6655
  /**
4630
6656
  * A slug is the last part of the URL address that serves as a unique identifier of the service.
4631
6657
  * The list of supported slugs includes past service names for backwards compatibility, and a custom slug if one was set by the business owner.
@@ -4666,6 +6692,12 @@ interface UpdateService {
4666
6692
  */
4667
6693
  revision?: string | null;
4668
6694
  }
6695
+ interface BulkUpdateServicesOptions {
6696
+ /** Services to update. */
6697
+ services?: MaskedService[];
6698
+ /** `true` if the updated entities must be included in the response, otherwise no entities are included in the response. */
6699
+ returnEntity?: boolean;
6700
+ }
4669
6701
  interface DeleteServiceOptions {
4670
6702
  /**
4671
6703
  * Whether to preserve future sessions with participants.
@@ -4676,6 +6708,16 @@ interface DeleteServiceOptions {
4676
6708
  /** Whether to notify participants about the change and an optional custom message. */
4677
6709
  participantNotification?: V2ParticipantNotification;
4678
6710
  }
6711
+ interface BulkDeleteServicesOptions {
6712
+ /**
6713
+ * Whether to preserve future sessions with participants.
6714
+ *
6715
+ * Default: `false`.
6716
+ */
6717
+ preserveFutureSessionsWithParticipants?: boolean;
6718
+ /** Whether to notify participants about the change and an optional custom message. */
6719
+ participantNotification?: V2ParticipantNotification;
6720
+ }
4679
6721
  interface QueryServicesOptions {
4680
6722
  }
4681
6723
  interface QueryOffsetResult {
@@ -4738,6 +6780,30 @@ interface CountServicesOptions {
4738
6780
  /** The filters for performing the count. */
4739
6781
  filter?: Record<string, any> | null;
4740
6782
  }
6783
+ interface SetServiceLocationsOptions {
6784
+ /** The action to perform on sessions currently set to a removed location. For example, move existing sessions to a new specified location. */
6785
+ removedLocationSessionsAction?: RemovedLocationSessionsAction;
6786
+ /** Whether to notify participants about the change of location, and an optional custom message. */
6787
+ participantNotification?: V2ParticipantNotification;
6788
+ }
6789
+ interface DisablePricingPlansForServiceOptions {
6790
+ /** ID of the pricing plans to disconnect from the service. */
6791
+ pricingPlanIds?: string[];
6792
+ }
6793
+ interface ValidateSlugOptions {
6794
+ /** The custom name to validate as a slug for the service. */
6795
+ slugName: string;
6796
+ }
6797
+ interface CloneServiceOptions {
6798
+ /** copy recurring sessions of an active service's schedule */
6799
+ copyRecurringSessions?: boolean;
6800
+ /** copy benefits with pricing plans that are connected to the source service. If the source service is connected to more than 120 benefits with pricing plans then they will not be copied. In that case the field `error_types` in the response will include `PRICING_PLANS`. */
6801
+ copyPricingPlans?: boolean;
6802
+ /** whether to hide service from the list or not. Empty means that we will copy this value from the source service without overriding it */
6803
+ hideService?: boolean | null;
6804
+ /** the name of the clone service. The title of the clone service's schedule will also be set to this name. When this parameter is omitted then the clone service will have the same name as the source service and the clone service's schedule will get the same title as the source service's active schedule. */
6805
+ cloneServiceName?: string | null;
6806
+ }
4741
6807
 
4742
6808
  declare function createService$1(httpClient: HttpClient): (service: Service) => Promise<Service & {
4743
6809
  type: ServiceType;
@@ -5186,9 +7252,19 @@ declare function updateService$1(httpClient: HttpClient): (_id: string | null, s
5186
7252
  } | undefined;
5187
7253
  } | undefined;
5188
7254
  }>;
7255
+ declare function bulkUpdateServices$1(httpClient: HttpClient): (options?: BulkUpdateServicesOptions) => Promise<BulkUpdateServicesResponse & BulkUpdateServicesResponseNonNullableFields>;
5189
7256
  declare function deleteService$1(httpClient: HttpClient): (serviceId: string, options?: DeleteServiceOptions) => Promise<void>;
7257
+ declare function bulkDeleteServices$1(httpClient: HttpClient): (ids: string[], options?: BulkDeleteServicesOptions) => Promise<BulkDeleteServicesResponse & BulkDeleteServicesResponseNonNullableFields>;
5190
7258
  declare function queryServices$1(httpClient: HttpClient): (options?: QueryServicesOptions) => ServicesQueryBuilder;
7259
+ declare function searchServices$1(httpClient: HttpClient): (search: CursorSearch) => Promise<SearchServicesResponse & SearchServicesResponseNonNullableFields>;
7260
+ declare function queryPolicies$1(httpClient: HttpClient): (query: CursorQuery) => Promise<QueryPoliciesResponse & QueryPoliciesResponseNonNullableFields>;
5191
7261
  declare function countServices$1(httpClient: HttpClient): (options?: CountServicesOptions) => Promise<CountServicesResponse & CountServicesResponseNonNullableFields>;
7262
+ declare function setServiceLocations$1(httpClient: HttpClient): (serviceId: string, locations: V2Location[], options?: SetServiceLocationsOptions) => Promise<SetServiceLocationsResponse & SetServiceLocationsResponseNonNullableFields>;
7263
+ declare function enablePricingPlansForService$1(httpClient: HttpClient): (serviceId: string, pricingPlanIds: string[]) => Promise<EnablePricingPlansForServiceResponse & EnablePricingPlansForServiceResponseNonNullableFields>;
7264
+ declare function disablePricingPlansForService$1(httpClient: HttpClient): (serviceId: string, options?: DisablePricingPlansForServiceOptions) => Promise<DisablePricingPlansForServiceResponse & DisablePricingPlansForServiceResponseNonNullableFields>;
7265
+ declare function setCustomSlug$1(httpClient: HttpClient): (serviceId: string, slugName: string) => Promise<SetCustomSlugResponse & SetCustomSlugResponseNonNullableFields>;
7266
+ declare function validateSlug$1(httpClient: HttpClient): (serviceId: string, options: ValidateSlugOptions) => Promise<ValidateSlugResponse & ValidateSlugResponseNonNullableFields>;
7267
+ declare function cloneService$1(httpClient: HttpClient): (sourceServiceId: string, options?: CloneServiceOptions) => Promise<CloneServiceResponse & CloneServiceResponseNonNullableFields>;
5192
7268
  declare const onServiceCreated$1: EventDefinition<ServiceCreatedEnvelope, "wix.bookings.services.v2.service_created">;
5193
7269
  declare const onServiceUpdated$1: EventDefinition<ServiceUpdatedEnvelope, "wix.bookings.services.v2.service_updated">;
5194
7270
  declare const onServiceDeleted$1: EventDefinition<ServiceDeletedEnvelope, "wix.bookings.services.v2.service_deleted">;
@@ -5196,24 +7272,44 @@ declare const onServiceDeleted$1: EventDefinition<ServiceDeletedEnvelope, "wix.b
5196
7272
  declare const createService: BuildRESTFunction<typeof createService$1>;
5197
7273
  declare const getService: BuildRESTFunction<typeof getService$1>;
5198
7274
  declare const updateService: BuildRESTFunction<typeof updateService$1>;
7275
+ declare const bulkUpdateServices: BuildRESTFunction<typeof bulkUpdateServices$1>;
5199
7276
  declare const deleteService: BuildRESTFunction<typeof deleteService$1>;
7277
+ declare const bulkDeleteServices: BuildRESTFunction<typeof bulkDeleteServices$1>;
5200
7278
  declare const queryServices: BuildRESTFunction<typeof queryServices$1>;
7279
+ declare const searchServices: BuildRESTFunction<typeof searchServices$1>;
7280
+ declare const queryPolicies: BuildRESTFunction<typeof queryPolicies$1>;
5201
7281
  declare const countServices: BuildRESTFunction<typeof countServices$1>;
7282
+ declare const setServiceLocations: BuildRESTFunction<typeof setServiceLocations$1>;
7283
+ declare const enablePricingPlansForService: BuildRESTFunction<typeof enablePricingPlansForService$1>;
7284
+ declare const disablePricingPlansForService: BuildRESTFunction<typeof disablePricingPlansForService$1>;
7285
+ declare const setCustomSlug: BuildRESTFunction<typeof setCustomSlug$1>;
7286
+ declare const validateSlug: BuildRESTFunction<typeof validateSlug$1>;
7287
+ declare const cloneService: BuildRESTFunction<typeof cloneService$1>;
5202
7288
  declare const onServiceCreated: BuildEventDefinition<typeof onServiceCreated$1>;
5203
7289
  declare const onServiceUpdated: BuildEventDefinition<typeof onServiceUpdated$1>;
5204
7290
  declare const onServiceDeleted: BuildEventDefinition<typeof onServiceDeleted$1>;
5205
7291
 
7292
+ declare const context$4_bulkDeleteServices: typeof bulkDeleteServices;
7293
+ declare const context$4_bulkUpdateServices: typeof bulkUpdateServices;
7294
+ declare const context$4_cloneService: typeof cloneService;
5206
7295
  declare const context$4_countServices: typeof countServices;
5207
7296
  declare const context$4_createService: typeof createService;
5208
7297
  declare const context$4_deleteService: typeof deleteService;
7298
+ declare const context$4_disablePricingPlansForService: typeof disablePricingPlansForService;
7299
+ declare const context$4_enablePricingPlansForService: typeof enablePricingPlansForService;
5209
7300
  declare const context$4_getService: typeof getService;
5210
7301
  declare const context$4_onServiceCreated: typeof onServiceCreated;
5211
7302
  declare const context$4_onServiceDeleted: typeof onServiceDeleted;
5212
7303
  declare const context$4_onServiceUpdated: typeof onServiceUpdated;
7304
+ declare const context$4_queryPolicies: typeof queryPolicies;
5213
7305
  declare const context$4_queryServices: typeof queryServices;
7306
+ declare const context$4_searchServices: typeof searchServices;
7307
+ declare const context$4_setCustomSlug: typeof setCustomSlug;
7308
+ declare const context$4_setServiceLocations: typeof setServiceLocations;
5214
7309
  declare const context$4_updateService: typeof updateService;
7310
+ declare const context$4_validateSlug: typeof validateSlug;
5215
7311
  declare namespace context$4 {
5216
- export { context$4_countServices as countServices, context$4_createService as createService, context$4_deleteService as deleteService, context$4_getService as getService, context$4_onServiceCreated as onServiceCreated, context$4_onServiceDeleted as onServiceDeleted, context$4_onServiceUpdated as onServiceUpdated, context$4_queryServices as queryServices, context$4_updateService as updateService };
7312
+ export { context$4_bulkDeleteServices as bulkDeleteServices, context$4_bulkUpdateServices as bulkUpdateServices, context$4_cloneService as cloneService, context$4_countServices as countServices, context$4_createService as createService, context$4_deleteService as deleteService, context$4_disablePricingPlansForService as disablePricingPlansForService, context$4_enablePricingPlansForService as enablePricingPlansForService, context$4_getService as getService, context$4_onServiceCreated as onServiceCreated, context$4_onServiceDeleted as onServiceDeleted, context$4_onServiceUpdated as onServiceUpdated, context$4_queryPolicies as queryPolicies, context$4_queryServices as queryServices, context$4_searchServices as searchServices, context$4_setCustomSlug as setCustomSlug, context$4_setServiceLocations as setServiceLocations, context$4_updateService as updateService, context$4_validateSlug as validateSlug };
5217
7313
  }
5218
7314
 
5219
7315
  /** Categories are used to group multiple services together. A service must be associated with a category in order to be exposed in the Wix Bookings UI. */