@wix/auto_sdk_bookings_services 1.0.277 → 1.0.279
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/cjs/{bookings-services-v2-service-services.universal-C9w--XSp.d.ts → bookings-services-v2-service-services.universal-DM8OiYeR.d.ts} +5 -5
- package/build/cjs/index.d.ts +2 -2
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index.typings.d.ts +2 -2
- package/build/cjs/index.typings.js.map +1 -1
- package/build/cjs/meta.d.ts +6 -6
- package/build/cjs/meta.js.map +1 -1
- package/build/cjs/schemas.js +7701 -7334
- package/build/cjs/schemas.js.map +1 -1
- package/build/es/{bookings-services-v2-service-services.universal-C9w--XSp.d.mts → bookings-services-v2-service-services.universal-DM8OiYeR.d.mts} +5 -5
- package/build/es/index.d.mts +2 -2
- package/build/es/index.mjs.map +1 -1
- package/build/es/index.typings.d.mts +2 -2
- package/build/es/index.typings.mjs.map +1 -1
- package/build/es/meta.d.mts +6 -6
- package/build/es/meta.mjs.map +1 -1
- package/build/es/schemas.mjs +7701 -7334
- package/build/es/schemas.mjs.map +1 -1
- package/build/internal/cjs/{bookings-services-v2-service-services.universal-DsaHtTHm.d.ts → bookings-services-v2-service-services.universal-D1GNa9Dd.d.ts} +5 -5
- package/build/internal/cjs/index.d.ts +2 -2
- package/build/internal/cjs/index.typings.d.ts +2 -2
- package/build/internal/cjs/meta.d.ts +6 -6
- package/build/internal/es/{bookings-services-v2-service-services.universal-DsaHtTHm.d.mts → bookings-services-v2-service-services.universal-D1GNa9Dd.d.mts} +5 -5
- package/build/internal/es/index.d.mts +2 -2
- package/build/internal/es/index.typings.d.mts +2 -2
- package/build/internal/es/meta.d.mts +6 -6
- package/package.json +2 -2
- package/build/internal/cjs/index.js +0 -4135
- package/build/internal/cjs/index.js.map +0 -1
- package/build/internal/cjs/index.typings.js +0 -3684
- package/build/internal/cjs/index.typings.js.map +0 -1
- package/build/internal/cjs/meta.js +0 -2698
- package/build/internal/cjs/meta.js.map +0 -1
- package/build/internal/cjs/schemas.js +0 -17303
- package/build/internal/cjs/schemas.js.map +0 -1
- package/build/internal/es/index.mjs +0 -4034
- package/build/internal/es/index.mjs.map +0 -1
- package/build/internal/es/index.typings.mjs +0 -3585
- package/build/internal/es/index.typings.mjs.map +0 -1
- package/build/internal/es/meta.mjs +0 -2598
- package/build/internal/es/meta.mjs.map +0 -1
- package/build/internal/es/schemas.mjs +0 -17213
- package/build/internal/es/schemas.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bookings-services-v2-service-services.schemas.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const CreateServiceRequest = /*#__PURE__*/ z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z.enum(['APPOINTMENT', 'CLASS', 'COURSE']).optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z.enum(['ONLINE', 'IN_PERSON']).optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z.enum(['CUSTOM', 'BUSINESS', 'CUSTOMER']).optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({ unitType: z.enum(['HOUR', 'DAY']).optional() }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z.enum(['BUSINESS', 'BILLING']).optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Service to create.'),\n});\nexport const CreateServiceResponse = /*#__PURE__*/ z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe('The rate the customer is expected to pay for the service.')\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Amount to be charged as a cancellation fee.'),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the slug was created. This is a system field.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe('Whether the keyword is the main focus keyword.')\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n});\nexport const BulkCreateServicesRequest = /*#__PURE__*/ z.object({\n services: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z.enum(['APPOINTMENT', 'CLASS', 'COURSE']).optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z.enum(['ONLINE', 'IN_PERSON']).optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z.enum(['CUSTOM', 'BUSINESS', 'CUSTOMER']).optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({ unitType: z.enum(['HOUR', 'DAY']).optional() }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z.enum(['BUSINESS', 'BILLING']).optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100),\n options: z\n .object({\n returnEntity: z\n .boolean()\n .describe('Whether to return the created service objects.')\n .optional(),\n })\n .optional(),\n});\nexport const BulkCreateServicesResponse = /*#__PURE__*/ z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Update metadata.')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe(\n 'Form the customer filled out when booking the service.'\n )\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum([\n 'FIXED',\n 'CUSTOM',\n 'VARIED',\n 'NO_FEE',\n 'SUBSCRIPTION',\n ])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe(\n 'Customers can pay for the service in person.'\n )\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether the policy is the default for the meta site.'\n )\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe('Default: `false`')\n .optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z\n .array(z.number().int())\n .max(50)\n .optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({\n values: z.array(z.string()).max(100).optional(),\n })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z\n .string()\n .describe('Keyword value.')\n .optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n })\n )\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Create statistics.')\n .optional(),\n});\nexport const GetServiceRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service to retrieve.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n conditionalFields: z\n .array(\n z.enum([\n 'STAFF_MEMBER_DETAILS',\n 'RESOURCE_TYPE_DETAILS',\n 'DISCOUNT_INFO_DETAILS',\n 'RESOURCE_DETAILS',\n ])\n )\n .max(5)\n .optional(),\n })\n .optional(),\n});\nexport const GetServiceResponse = /*#__PURE__*/ z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe('The rate the customer is expected to pay for the service.')\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Amount to be charged as a cancellation fee.'),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the slug was created. This is a system field.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe('Whether the keyword is the main focus keyword.')\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n});\nexport const UpdateServiceRequest = /*#__PURE__*/ z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z.enum(['APPOINTMENT', 'CLASS', 'COURSE']).optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z.enum(['ONLINE', 'IN_PERSON']).optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z.enum(['CUSTOM', 'BUSINESS', 'CUSTOMER']).optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({ unitType: z.enum(['HOUR', 'DAY']).optional() }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n ),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z.enum(['BUSINESS', 'BILLING']).optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Service to update.'),\n});\nexport const UpdateServiceResponse = /*#__PURE__*/ z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe('The rate the customer is expected to pay for the service.')\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Amount to be charged as a cancellation fee.'),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the slug was created. This is a system field.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe('Whether the keyword is the main focus keyword.')\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n});\nexport const BulkUpdateServicesRequest = /*#__PURE__*/ z.object({\n options: z\n .object({\n services: z\n .array(\n z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z.enum(['APPOINTMENT', 'CLASS', 'COURSE']).optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe(\n 'Short service description, such as `Hair styling`.'\n )\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe(\n 'Form the customer filled out when booking the service.'\n )\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum([\n 'FIXED',\n 'CUSTOM',\n 'VARIED',\n 'NO_FEE',\n 'SUBSCRIPTION',\n ])\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe(\n 'Customers can pay for the service in person.'\n )\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z.enum(['ONLINE', 'IN_PERSON']).optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z\n .string()\n .optional()\n .nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z\n .string()\n .optional()\n .nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether the policy is the default for the meta site.'\n )\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe(\n 'Policy regarding the participants per booking.'\n )\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe('Default: `false`')\n .optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe(\n 'The duration of the service in minutes.'\n )\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z\n .array(z.number().int())\n .max(50)\n .optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z.enum(['HOUR', 'DAY']).optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe(\n 'Limitations affecting the service availability.'\n )\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({\n values: z.array(z.string()).max(100).optional(),\n })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z\n .string()\n .describe('Keyword value.')\n .optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n ),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Service to update.'),\n mask: z.array(z.string()).optional(),\n })\n )\n .max(100)\n .optional(),\n returnEntity: z\n .boolean()\n .describe(\n 'Whether to include the updated services in the response. Default: `false`'\n )\n .optional(),\n })\n .optional(),\n});\nexport const BulkUpdateServicesResponse = /*#__PURE__*/ z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Update metadata.')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe(\n 'Form the customer filled out when booking the service.'\n )\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum([\n 'FIXED',\n 'CUSTOM',\n 'VARIED',\n 'NO_FEE',\n 'SUBSCRIPTION',\n ])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe(\n 'Customers can pay for the service in person.'\n )\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether the policy is the default for the meta site.'\n )\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe('Default: `false`')\n .optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z\n .array(z.number().int())\n .max(50)\n .optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({\n values: z.array(z.string()).max(100).optional(),\n })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z\n .string()\n .describe('Keyword value.')\n .optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n })\n )\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Update statistics.')\n .optional(),\n});\nexport const BulkUpdateServicesByFilterRequest = /*#__PURE__*/ z.object({\n filter: z\n .record(z.string(), z.any())\n .describe('Filter to identify the services to update.'),\n options: z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z.enum(['APPOINTMENT', 'CLASS', 'COURSE']).optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z.enum(['ONLINE', 'IN_PERSON']).optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z.enum(['CUSTOM', 'BUSINESS', 'CUSTOMER']).optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({ unitType: z.enum(['HOUR', 'DAY']).optional() }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z.enum(['BUSINESS', 'BILLING']).optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Service to update.'),\n }),\n});\nexport const BulkUpdateServicesByFilterResponse = /*#__PURE__*/ z.object({\n jobId: z\n .string()\n .describe(\n 'ID of the service update job.\\n\\nPass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const DeleteServiceRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service to delete.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n preserveFutureSessionsWithParticipants: z\n .boolean()\n .describe(\n 'Whether to preserve future sessions with participants.\\n\\nDefault: `false`'\n )\n .optional(),\n participantNotification: z\n .object({\n notifyParticipants: z\n .boolean()\n .describe(\n 'Whether to send a message about the changes to the customer.\\n\\nDefault: `false`'\n )\n .optional()\n .nullable(),\n message: z\n .string()\n .describe(\n 'Custom message to send to the participants about the changes to the booking.'\n )\n .max(2000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Whether to notify participants about the change and an optional\\ncustom message.'\n )\n .optional(),\n })\n .describe(\n \"Allows you to configure how to handle the deleted service's future sessions and how to notify the sessions participants.\"\n )\n .optional(),\n});\nexport const DeleteServiceResponse = /*#__PURE__*/ z.object({});\nexport const BulkDeleteServicesRequest = /*#__PURE__*/ z.object({\n ids: z.array(z.string()).max(100),\n options: z\n .object({\n preserveFutureSessionsWithParticipants: z\n .boolean()\n .describe(\n 'Whether to preserve future sessions with participants.\\n\\nDefault: `false`.'\n )\n .optional(),\n participantNotification: z\n .object({\n notifyParticipants: z\n .boolean()\n .describe(\n 'Whether to send a message about the changes to the customer.\\n\\nDefault: `false`'\n )\n .optional()\n .nullable(),\n message: z\n .string()\n .describe(\n 'Custom message to send to the participants about the changes to the booking.'\n )\n .max(2000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Whether to notify participants about the change and an optional\\ncustom message.'\n )\n .optional(),\n })\n .optional(),\n});\nexport const BulkDeleteServicesResponse = /*#__PURE__*/ z.object({\n results: z\n .array(\n z.object({\n itemMetadata: z\n .object({\n _id: z\n .string()\n .describe(\n \"Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n originalIndex: z\n .number()\n .int()\n .describe(\n 'Index of the item within the request array. Allows for correlation between request and response items.'\n )\n .optional(),\n success: z\n .boolean()\n .describe(\n 'Whether the requested action was successful for this item. When `false`, the `error` field is populated.'\n )\n .optional(),\n error: z\n .object({\n code: z.string().describe('Error code.').optional(),\n description: z\n .string()\n .describe('Description of the error.')\n .optional(),\n data: z\n .record(z.string(), z.any())\n .describe('Data related to the error.')\n .optional()\n .nullable(),\n })\n .describe('Details about the error in case of failure.')\n .optional(),\n })\n .describe('Update metadata.')\n .optional(),\n item: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe(\n 'Form the customer filled out when booking the service.'\n )\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum([\n 'FIXED',\n 'CUSTOM',\n 'VARIED',\n 'NO_FEE',\n 'SUBSCRIPTION',\n ])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe(\n 'Customers can pay for the service in person.'\n )\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether the policy is the default for the meta site.'\n )\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe('Default: `false`')\n .optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z\n .array(z.number().int())\n .max(50)\n .optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({\n values: z.array(z.string()).max(100).optional(),\n })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z\n .string()\n .describe('Keyword value.')\n .optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n })\n )\n .optional(),\n bulkActionMetadata: z\n .object({\n totalSuccesses: z\n .number()\n .int()\n .describe('Number of items that were successfully processed.')\n .optional(),\n totalFailures: z\n .number()\n .int()\n .describe(\"Number of items that couldn't be processed.\")\n .optional(),\n undetailedFailures: z\n .number()\n .int()\n .describe(\n 'Number of failures without details because detailed failure threshold was exceeded.'\n )\n .optional(),\n })\n .describe('Delete statistics.')\n .optional(),\n});\nexport const BulkDeleteServicesByFilterRequest = /*#__PURE__*/ z.object({\n filter: z\n .record(z.string(), z.any())\n .describe('Filter to identify the services that need to be deleted.'),\n options: z\n .object({\n preserveFutureSessionsWithParticipants: z\n .boolean()\n .describe(\n 'Whether to preserve future sessions with participants.\\n\\nDefault: `false`.'\n )\n .optional(),\n participantNotification: z\n .object({\n notifyParticipants: z\n .boolean()\n .describe(\n 'Whether to send a message about the changes to the customer.\\n\\nDefault: `false`'\n )\n .optional()\n .nullable(),\n message: z\n .string()\n .describe(\n 'Custom message to send to the participants about the changes to the booking.'\n )\n .max(2000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Whether to notify participants about the change and an optional custom message.'\n )\n .optional(),\n })\n .optional(),\n});\nexport const BulkDeleteServicesByFilterResponse = /*#__PURE__*/ z.object({\n jobId: z\n .string()\n .describe(\n 'ID of the service deletion job.\\n\\nPass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n});\nexport const QueryServicesRequest = /*#__PURE__*/ z.object({\n query: z\n .object({\n filter: z\n .object({\n _id: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n appId: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n name: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n type: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n description: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n hidden: z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n tagLine: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n staffMemberIds: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'serviceResources.resourceIds.values': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'form._id': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'category._id': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'category.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'locations.business._id': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'mainSlug.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'supportedSlugs.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'onlineBooking.enabled': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.online': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.inPerson': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.pricingPlan': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'schedule.firstSessionStart': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'schedule.lastSessionEnd': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n $and: z.array(z.any()).optional(),\n $or: z.array(z.any()).optional(),\n $not: z.any().optional(),\n })\n .strict()\n .optional(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .enum([\n '_id',\n 'appId',\n 'name',\n 'type',\n 'description',\n 'hidden',\n 'tagLine',\n 'staffMemberIds',\n 'serviceResources.resourceIds.values',\n 'form._id',\n 'category._id',\n 'category.name',\n 'locations.business._id',\n 'mainSlug.name',\n 'supportedSlugs.name',\n 'onlineBooking.enabled',\n 'payment.options.online',\n 'payment.options.inPerson',\n 'payment.options.pricingPlan',\n 'schedule.firstSessionStart',\n 'schedule.lastSessionEnd',\n ])\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .optional(),\n })\n .catchall(z.any())\n .describe('WQL expression.'),\n options: z\n .object({\n conditionalFields: z\n .array(\n z.enum([\n 'STAFF_MEMBER_DETAILS',\n 'RESOURCE_TYPE_DETAILS',\n 'DISCOUNT_INFO_DETAILS',\n 'RESOURCE_DETAILS',\n ])\n )\n .max(5)\n .optional(),\n })\n .optional(),\n});\nexport const QueryServicesResponse = /*#__PURE__*/ z.object({\n services: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe('Number of items returned in the response.')\n .optional()\n .nullable(),\n offset: z\n .number()\n .int()\n .describe('Offset that was requested.')\n .optional()\n .nullable(),\n total: z\n .number()\n .int()\n .describe(\n 'Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.'\n )\n .optional()\n .nullable(),\n tooManyToCount: z\n .boolean()\n .describe(\n 'Flag that indicates the server failed to calculate the `total` field.'\n )\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor token for retrieving the next page of results.\\n\\nUse this token in subsequent requests to continue pagination forward.\\nValue is `null` when on the last page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor token for retrieving the previous page of results.\\n\\nUse this token to navigate backwards through result pages.\\nValue is `null` when on the first page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.'\n )\n .optional(),\n })\n .describe('Paging metadata, including offset and count.')\n .optional(),\n});\nexport const SearchServicesRequest = /*#__PURE__*/ z.object({\n search: z\n .object({\n filter: z\n .object({\n _id: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n appId: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n name: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n type: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n description: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n hidden: z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n tagLine: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n staffMemberIds: z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'serviceResources.resourceIds.values': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'form._id': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'category._id': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'category.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'category.sortOrder': z\n .object({\n $eq: z.number(),\n $exists: z.boolean(),\n $gt: z.number(),\n $gte: z.number(),\n $hasAll: z.array(z.number()),\n $hasSome: z.array(z.number()),\n $in: z.array(z.number()),\n $lt: z.number(),\n $lte: z.number(),\n $ne: z.number(),\n $nin: z.array(z.number()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'locations.business._id': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'locations.business.name': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'locations.type': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'locations.calculatedAddress.formattedAddress': z\n .object({\n $eq: z.any(),\n $exists: z.boolean(),\n $gt: z.any(),\n $gte: z.any(),\n $hasAll: z.array(z.any()),\n $hasSome: z.array(z.any()),\n $in: z.array(z.any()),\n $lt: z.any(),\n $lte: z.any(),\n $ne: z.any(),\n $nin: z.array(z.any()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'mainSlug.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'supportedSlugs.name': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'onlineBooking.enabled': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.online': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.inPerson': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'payment.options.pricingPlan': z\n .object({\n $eq: z.boolean(),\n $exists: z.boolean(),\n $gt: z.boolean(),\n $gte: z.boolean(),\n $hasAll: z.array(z.boolean()),\n $hasSome: z.array(z.boolean()),\n $in: z.array(z.boolean()),\n $lt: z.boolean(),\n $lte: z.boolean(),\n $ne: z.boolean(),\n $nin: z.array(z.boolean()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'addOnDetails.addOnId': z\n .object({\n $eq: z.string(),\n $exists: z.boolean(),\n $gt: z.string(),\n $gte: z.string(),\n $hasAll: z.array(z.string()),\n $hasSome: z.array(z.string()),\n $in: z.array(z.string()),\n $lt: z.string(),\n $lte: z.string(),\n $ne: z.string(),\n $nin: z.array(z.string()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n 'addOnDetails.durationInMinutes': z\n .object({\n $eq: z.number(),\n $exists: z.boolean(),\n $gt: z.number(),\n $gte: z.number(),\n $hasAll: z.array(z.number()),\n $hasSome: z.array(z.number()),\n $in: z.array(z.number()),\n $lt: z.number(),\n $lte: z.number(),\n $ne: z.number(),\n $nin: z.array(z.number()),\n $startsWith: z.string(),\n })\n .partial()\n .strict()\n .optional(),\n $and: z.array(z.any()).optional(),\n $or: z.array(z.any()).optional(),\n $not: z.any().optional(),\n })\n .strict()\n .optional(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .enum([\n '_id',\n 'appId',\n 'name',\n 'type',\n 'description',\n 'hidden',\n 'tagLine',\n 'staffMemberIds',\n 'serviceResources.resourceIds.values',\n 'form._id',\n 'category._id',\n 'category.name',\n 'category.sortOrder',\n 'locations.business._id',\n 'locations.business.name',\n 'locations.type',\n 'locations.calculatedAddress.formattedAddress',\n 'mainSlug.name',\n 'supportedSlugs.name',\n 'onlineBooking.enabled',\n 'payment.options.online',\n 'payment.options.inPerson',\n 'payment.options.pricingPlan',\n 'addOnDetails.addOnId',\n 'addOnDetails.durationInMinutes',\n ])\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .optional(),\n })\n .catchall(z.any())\n .describe(\n 'Search criteria including filter, sort, aggregations, and paging options.'\n ),\n});\nexport const SearchServicesResponse = /*#__PURE__*/ z.object({\n services: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe(\n 'Number of items returned in the current response page.\\n\\nThis count reflects the actual number of items in the current result set,\\nwhich may be less than the requested limit if fewer items are available.'\n )\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor token for retrieving the next page of results.\\n\\nUse this token in subsequent requests to continue pagination forward.\\nValue is `null` when on the last page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor token for retrieving the previous page of results.\\n\\nUse this token to navigate backwards through result pages.\\nValue is `null` when on the first page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Navigation cursors for moving between result pages.\\n\\nContains `next` and `prev` cursor tokens for pagination. Use the `next` cursor\\nto retrieve subsequent pages and `prev` cursor to go back to previous pages.\\nLearn more about cursor paging in the [API Query Language guide](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging).'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Indicates whether additional results are available beyond the current page.\\n\\n- `true`: More results exist and can be retrieved using the `next` cursor.\\n- `false`: This is the final page of results.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n \"Cursor-based paging metadata for navigating search results.\\n\\nContains the current page's cursor information, whether there are more results available,\\nand count details. Use the `next` cursor to retrieve subsequent pages of results.\"\n )\n .optional(),\n aggregationData: z\n .object({\n results: z\n .array(\n z.intersection(\n z.object({\n name: z\n .string()\n .describe(\n 'User-defined name of aggregation as derived from search request.'\n )\n .max(100)\n .optional(),\n type: z\n .enum(['VALUE', 'RANGE', 'SCALAR', 'DATE_HISTOGRAM', 'NESTED'])\n .describe(\n 'Type of aggregation that must match specified kind as derived from search request.'\n )\n .optional(),\n fieldPath: z\n .string()\n .describe(\n 'Path to the field to aggregate by in dot notation. For example `name` or `paymentOptions.online`.'\n )\n .max(200)\n .optional(),\n }),\n z.xor([\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n }),\n z.object({\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n values: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe('Value of the field.')\n .max(100)\n .optional(),\n count: z\n .number()\n .int()\n .describe('Count of entities with this value.')\n .optional(),\n })\n )\n .max(250)\n .optional(),\n })\n .describe('Value aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n ranges: z\n .object({\n results: z\n .array(\n z.object({\n from: z\n .number()\n .describe('Inclusive lower bound of the range.')\n .optional()\n .nullable(),\n to: z\n .number()\n .describe('Exclusive upper bound of the range.')\n .optional()\n .nullable(),\n count: z\n .number()\n .int()\n .describe('Count of entities in this range.')\n .optional(),\n })\n )\n .max(50)\n .optional(),\n })\n .describe('Range aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n scalar: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe('Type of scalar aggregation.')\n .optional(),\n value: z\n .number()\n .describe('Value of the scalar aggregation.')\n .optional(),\n })\n .describe('Scalar aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n groupedByValue: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe('Value of the field.')\n .max(1000)\n .optional(),\n nestedResults: z\n .intersection(\n z.object({\n name: z\n .string()\n .describe(\n 'User-defined name of aggregation, matches the one specified in request.'\n )\n .max(100)\n .optional(),\n type: z\n .enum([\n 'VALUE',\n 'RANGE',\n 'SCALAR',\n 'DATE_HISTOGRAM',\n 'NESTED',\n ])\n .describe(\n 'Type of aggregation that matches result.'\n )\n .optional(),\n fieldPath: z\n .string()\n .describe(\n 'Path to the field to aggregate by in dot notation. For example `name` or `paymentOptions.online`.'\n )\n .max(200)\n .optional(),\n }),\n z.xor([\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n }),\n z.object({\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n values: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe('Value of the field.')\n .max(100)\n .optional(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities with this value.'\n )\n .optional(),\n })\n )\n .max(250)\n .optional(),\n })\n .describe('Value aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n scalar: z.never().optional(),\n ranges: z\n .object({\n results: z\n .array(\n z.object({\n from: z\n .number()\n .describe(\n 'Inclusive lower bound of the range.'\n )\n .optional()\n .nullable(),\n to: z\n .number()\n .describe(\n 'Exclusive upper bound of the range.'\n )\n .optional()\n .nullable(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities in this range.'\n )\n .optional(),\n })\n )\n .max(50)\n .optional(),\n })\n .describe('Range aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe('Type of scalar aggregation.')\n .optional(),\n value: z\n .number()\n .describe(\n 'Value of the scalar aggregation.'\n )\n .optional(),\n })\n .describe('Scalar aggregation results.'),\n }),\n ])\n )\n .describe('Nested aggregations.')\n .optional(),\n })\n )\n .max(1000)\n .optional(),\n })\n .describe('Group by value aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z.never().optional(),\n dateHistogram: z\n .object({\n results: z\n .array(\n z.object({\n value: z\n .string()\n .describe(\n 'Date in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).'\n )\n .max(100)\n .optional(),\n count: z\n .number()\n .int()\n .describe('Count of documents in the bucket.')\n .optional(),\n })\n )\n .max(200)\n .optional(),\n })\n .describe('Date histogram aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z.never().optional(),\n nested: z\n .object({\n results: z\n .array(\n z.object({\n results: z\n .record(\n z.string(),\n z.intersection(\n z.object({}),\n z.xor([\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z.never().optional(),\n }),\n z.object({\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z.never().optional(),\n value: z\n .object({\n value: z\n .string()\n .describe('Value of the field.')\n .max(1000)\n .optional(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities with this value.'\n )\n .optional()\n .nullable(),\n })\n .describe('Value aggregation result.'),\n }),\n z.object({\n value: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z.never().optional(),\n range: z\n .object({\n from: z\n .number()\n .describe(\n 'Inclusive lower bound of the range.'\n )\n .optional()\n .nullable(),\n to: z\n .number()\n .describe(\n 'Exclusive upper bound of the range.'\n )\n .optional()\n .nullable(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities in this range.'\n )\n .optional()\n .nullable(),\n })\n .describe('Range aggregation result.'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z.never().optional(),\n scalar: z\n .object({\n value: z\n .number()\n .describe(\n 'Value of the scalar aggregation.'\n )\n .optional(),\n })\n .describe('Scalar aggregation result.'),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n scalarDate: z.never().optional(),\n dateHistogram: z\n .object({\n value: z\n .string()\n .describe('Value of the field.')\n .max(1000)\n .optional(),\n count: z\n .number()\n .int()\n .describe(\n 'Count of entities with this value.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Date histogram aggregation result.'\n ),\n }),\n z.object({\n value: z.never().optional(),\n range: z.never().optional(),\n scalar: z.never().optional(),\n dateHistogram: z.never().optional(),\n scalarDate: z\n .object({\n value: z\n .string()\n .describe(\n 'Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.'\n )\n .max(100)\n .optional(),\n })\n .describe(\n 'Scalar date aggregation result.'\n ),\n }),\n ])\n )\n )\n .describe(\n 'Map of nested aggregation results, keyed by aggregation name.'\n )\n .optional(),\n })\n )\n .max(1000)\n .optional(),\n })\n .describe('Nested aggregation results.'),\n }),\n z.object({\n values: z.never().optional(),\n ranges: z.never().optional(),\n scalar: z.never().optional(),\n groupedByValue: z.never().optional(),\n dateHistogram: z.never().optional(),\n nested: z.never().optional(),\n scalarDate: z\n .object({\n type: z\n .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n .describe(\n 'Type of scalar date aggregation. Possible values: `MIN`, `MAX`.'\n )\n .optional(),\n value: z\n .string()\n .describe(\n 'Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.'\n )\n .max(100)\n .optional(),\n })\n .describe('Date aggregation results.'),\n }),\n ])\n )\n )\n .max(10000)\n .optional(),\n })\n .describe(\n 'Aggregation results based on the aggregations specified in the search request.\\n\\nProvides categorized data summaries such as service counts by type, location distribution,\\npayment method statistics, or custom aggregations. Available only when aggregations\\nare requested in the search criteria.'\n )\n .optional(),\n});\nexport const QueryPoliciesRequest = /*#__PURE__*/ z.object({\n query: z\n .intersection(\n z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object in the following format:\\n`\"filter\" : {\\n\"fieldName1\": \"value1\",\\n\"fieldName2\":{\"$operator\":\"value2\"}\\n}`\\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`'\n )\n .optional()\n .nullable(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .string()\n .describe('Name of the field to sort by.')\n .max(512)\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .max(50)\n .optional(),\n }),\n z.xor([\n z.object({ cursorPaging: z.never().optional() }),\n z.object({\n cursorPaging: z\n .object({\n limit: z\n .number()\n .int()\n .describe('Number of items to load.')\n .min(0)\n .max(100)\n .optional()\n .nullable(),\n cursor: z\n .string()\n .describe(\n \"Pointer to the next or previous page in the list of results.\\n\\nYou can get the relevant cursor token\\nfrom the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n '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`.'\n ),\n }),\n ])\n )\n .describe('Information about filters, paging, and sorting.'),\n});\nexport const QueryPoliciesResponse = /*#__PURE__*/ z.object({\n bookingPolicies: z\n .array(\n z.object({\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe('Retrieved booking policy.')\n .optional(),\n connectedServices: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe(\n 'Form the customer filled out when booking the service.'\n )\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum([\n 'FIXED',\n 'CUSTOM',\n 'VARIED',\n 'NO_FEE',\n 'SUBSCRIPTION',\n ])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe(\n 'Customers can pay for the service in person.'\n )\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe(\n 'Booking the service requires approval by the Wix user.'\n )\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether the policy is the default for the meta site.'\n )\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe('Default: `false`')\n .optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe(\n 'The duration of the service in minutes.'\n )\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z\n .array(z.number().int())\n .max(50)\n .optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({\n values: z.array(z.string()).max(100).optional(),\n })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z\n .string()\n .describe('Keyword value.')\n .optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n totalServiceCount: z\n .number()\n .int()\n .describe('Total number of services connected to the booking policy.')\n .optional(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe(\n 'Number of items returned in the current response page.\\n\\nThis count reflects the actual number of items in the current result set,\\nwhich may be less than the requested limit if fewer items are available.'\n )\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor token for retrieving the next page of results.\\n\\nUse this token in subsequent requests to continue pagination forward.\\nValue is `null` when on the last page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor token for retrieving the previous page of results.\\n\\nUse this token to navigate backwards through result pages.\\nValue is `null` when on the first page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Navigation cursors for moving between result pages.\\n\\nContains `next` and `prev` cursor tokens for pagination. Use the `next` cursor\\nto retrieve subsequent pages and `prev` cursor to go back to previous pages.\\nLearn more about cursor paging in the [API Query Language guide](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging).'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Indicates whether additional results are available beyond the current page.\\n\\n- `true`: More results exist and can be retrieved using the `next` cursor.\\n- `false`: This is the final page of results.'\n )\n .optional()\n .nullable(),\n })\n .describe('Paging metadata.')\n .optional(),\n});\nexport const QueryBookingFormsRequest = /*#__PURE__*/ z.object({\n query: z\n .intersection(\n z.object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Filter object in the following format:\\n`\"filter\" : {\\n\"fieldName1\": \"value1\",\\n\"fieldName2\":{\"$operator\":\"value2\"}\\n}`\\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`'\n )\n .optional()\n .nullable(),\n sort: z\n .array(\n z.object({\n fieldName: z\n .string()\n .describe('Name of the field to sort by.')\n .max(512)\n .optional(),\n order: z.enum(['ASC', 'DESC']).optional(),\n })\n )\n .max(50)\n .optional(),\n }),\n z.xor([\n z.object({ cursorPaging: z.never().optional() }),\n z.object({\n cursorPaging: z\n .object({\n limit: z\n .number()\n .int()\n .describe('Number of items to load.')\n .min(0)\n .max(100)\n .optional()\n .nullable(),\n cursor: z\n .string()\n .describe(\n \"Pointer to the next or previous page in the list of results.\\n\\nYou can get the relevant cursor token\\nfrom the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n '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`.'\n ),\n }),\n ])\n )\n .describe(\n 'Information about filters, paging, and sorting. See the article about\\nform filters ([REST](https://dev.wix.com/docs/rest/crm/forms/form-schemas/form-object))\\nfor all supported filters and sorting options.'\n ),\n options: z\n .object({\n conditionalFields: z\n .array(z.enum(['DEFAULT_BOOKING_FORM']))\n .max(5)\n .optional(),\n })\n .optional(),\n});\nexport const QueryBookingFormsResponse = /*#__PURE__*/ z.object({\n bookingForms: z\n .array(\n z.object({\n formDetails: z\n .object({\n formId: z\n .string()\n .describe('Form ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Form name.')\n .max(200)\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the form is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the form.'\n )\n .optional()\n .nullable(),\n })\n .describe('Information about the retrieved booking form.')\n .optional(),\n connectedServices: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('ID of the service connected to the booking form.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the service connected to the booking form.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n totalServiceCount: z\n .number()\n .int()\n .describe('Total number of services connected to the booking form.')\n .optional(),\n })\n )\n .optional(),\n pagingMetadata: z\n .object({\n count: z\n .number()\n .int()\n .describe(\n 'Number of items returned in the current response page.\\n\\nThis count reflects the actual number of items in the current result set,\\nwhich may be less than the requested limit if fewer items are available.'\n )\n .optional()\n .nullable(),\n cursors: z\n .object({\n next: z\n .string()\n .describe(\n 'Cursor token for retrieving the next page of results.\\n\\nUse this token in subsequent requests to continue pagination forward.\\nValue is `null` when on the last page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n prev: z\n .string()\n .describe(\n 'Cursor token for retrieving the previous page of results.\\n\\nUse this token to navigate backwards through result pages.\\nValue is `null` when on the first page of results.'\n )\n .max(16000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Navigation cursors for moving between result pages.\\n\\nContains `next` and `prev` cursor tokens for pagination. Use the `next` cursor\\nto retrieve subsequent pages and `prev` cursor to go back to previous pages.\\nLearn more about cursor paging in the [API Query Language guide](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging).'\n )\n .optional(),\n hasNext: z\n .boolean()\n .describe(\n 'Indicates whether additional results are available beyond the current page.\\n\\n- `true`: More results exist and can be retrieved using the `next` cursor.\\n- `false`: This is the final page of results.'\n )\n .optional()\n .nullable(),\n })\n .describe('Paging metadata.')\n .optional(),\n defaultBookingForm: z\n .object({\n formDetails: z\n .object({\n formId: z\n .string()\n .describe('Form ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Form name.')\n .max(200)\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the form is updated.\\nTo prevent conflicting changes,\\nthe current revision must be passed when updating the form.'\n )\n .optional()\n .nullable(),\n })\n .describe('Information about the retrieved booking form.')\n .optional(),\n connectedServices: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('ID of the service connected to the booking form.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the service connected to the booking form.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n totalServiceCount: z\n .number()\n .int()\n .describe('Total number of services connected to the booking form.')\n .optional(),\n })\n .describe(\n \"The site's default booking form and information about connected services.\"\n )\n .optional(),\n});\nexport const CountServicesRequest = /*#__PURE__*/ z.object({\n options: z\n .object({\n filter: z\n .record(z.string(), z.any())\n .describe(\n 'Query filter to base the count on. See [Query Services](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/query-services) for a list of supported filters.'\n )\n .optional()\n .nullable(),\n })\n .optional(),\n});\nexport const CountServicesResponse = /*#__PURE__*/ z.object({\n count: z\n .number()\n .int()\n .describe('Number of services matching the specified filter.')\n .optional(),\n});\nexport const QueryLocationsRequest = /*#__PURE__*/ z.object({\n options: z\n .object({\n filter: z\n .object({\n services: z\n .record(z.string(), z.any())\n .describe(\n 'Service filter. See [Query Services](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/query-services) for a list of supported filters.'\n )\n .optional()\n .nullable(),\n businessLocationIds: z.array(z.string()).max(100).optional(),\n })\n .describe('Filter.')\n .optional(),\n })\n .optional(),\n});\nexport const QueryLocationsResponse = /*#__PURE__*/ z.object({\n businessLocations: z\n .object({\n exists: z\n .boolean()\n .describe(\n 'Whether at least one service matching the filter is connected to any of the\\nretrieved business locations.'\n )\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n })\n .describe(\n 'Retrieved business locations and whether each location is connected to at\\nleast one service.'\n )\n .optional(),\n customLocations: z\n .object({\n exists: z\n .boolean()\n .describe(\n 'Whether at least one service matching the filter is connected to any of the\\nretrieved custom locations.'\n )\n .optional(),\n })\n .describe(\n 'Retrieved custom locations and whether each location is connected to at\\nleast one service.'\n )\n .optional(),\n customerLocations: z\n .object({\n exists: z\n .boolean()\n .describe(\n 'Whether at least one service matching the filter is connected to any of the\\nretrieved customer locations.'\n )\n .optional(),\n })\n .describe(\n 'Retrieved customer locations and whether each location is connected to at\\nleast one service.'\n )\n .optional(),\n});\nexport const QueryCategoriesRequest = /*#__PURE__*/ z.object({\n options: z\n .object({\n filter: z\n .object({\n services: z\n .record(z.string(), z.any())\n .describe(\n 'Service filter. See [Query Services](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/query-services) for a list of supported filters.'\n )\n .optional()\n .nullable(),\n categoryIds: z.array(z.string()).max(100).optional(),\n })\n .describe('Filter.')\n .optional(),\n })\n .optional(),\n});\nexport const QueryCategoriesResponse = /*#__PURE__*/ z.object({\n categories: z\n .array(\n z.object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n )\n .optional(),\n});\nexport const SetServiceLocationsRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z.enum(['CUSTOM', 'BUSINESS', 'CUSTOMER']).optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n removedLocationSessionsAction: z\n .intersection(\n z.object({\n action: z\n .enum(['KEEP_AT_CURRENT_LOCATION', 'MOVE_TO_LOCATION'])\n .optional(),\n }),\n z.xor([\n z.object({ moveToLocationOptions: z.never().optional() }),\n z.object({\n moveToLocationOptions: z\n .object({\n newLocation: z\n .intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe(\n 'Location address. Empty for `{\"type\": \"CUSTOMER\"}`.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z\n .string()\n .optional()\n .nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z\n .string()\n .optional()\n .nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n .describe(\n 'The new location to move existing sessions currently set to a removed location, used when `action` is `MOVE_TO_LOCATION`.'\n )\n .optional(),\n })\n .describe(\n 'Details about the new location of future events that were scheduled to take\\nplace at a removed location.'\n ),\n }),\n ])\n )\n .describe(\n 'The action to perform on sessions currently set to a removed location. For\\nexample, move existing sessions to a new specified location.\\nIf not specified, sessions will not be moved to a new location.'\n )\n .optional(),\n participantNotification: z\n .object({\n notifyParticipants: z\n .boolean()\n .describe(\n 'Whether to send a message about the changes to the customer.\\n\\nDefault: `false`'\n )\n .optional()\n .nullable(),\n message: z\n .string()\n .describe(\n 'Custom message to send to the participants about the changes to the booking.'\n )\n .max(2000)\n .optional()\n .nullable(),\n })\n .describe(\n 'Whether to notify participants about the change of location, and an\\nOptional custom message. The notification is sent only to participants of sessions that are affected by the change.'\n )\n .optional(),\n })\n .optional(),\n});\nexport const SetServiceLocationsResponse = /*#__PURE__*/ z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('The updated service with the newly set locations.')\n .optional(),\n});\nexport const EnablePricingPlansForServiceRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service to update.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n pricingPlanIds: z.array(z.string()).max(100),\n});\nexport const EnablePricingPlansForServiceResponse = /*#__PURE__*/ z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n});\nexport const DisablePricingPlansForServiceRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service to update.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({ pricingPlanIds: z.array(z.string()).max(75).optional() })\n .optional(),\n});\nexport const DisablePricingPlansForServiceResponse = /*#__PURE__*/ z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n});\nexport const SetCustomSlugRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service for which to update the active slug.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n slug: z\n .string()\n .describe('Slug to set as the active service slug.')\n .max(500)\n .optional(),\n })\n .optional(),\n});\nexport const SetCustomSlugResponse = /*#__PURE__*/ z.object({\n slug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe('Date and time the slug was created. This is a system field.')\n .optional()\n .nullable(),\n })\n .describe('Updated active service slug.')\n .optional(),\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Updated service.')\n .optional(),\n});\nexport const ValidateSlugRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('IO of the service to check custom slug validity for.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({\n slug: z.string().describe('Custom slug to validate.').max(500).optional(),\n })\n .optional(),\n});\nexport const ValidateSlugResponse = /*#__PURE__*/ z.object({\n valid: z.boolean().describe('Whether the slug is valid.').optional(),\n slug: z\n .string()\n .describe('Valid slug. Available only if `{\"valid\": true}`.')\n .max(500)\n .optional()\n .nullable(),\n errors: z\n .array(z.enum(['SLUG_CONTAINS_ILLEGAL_CHARACTERS', 'SLUG_ALREADY_EXISTS']))\n .max(3)\n .optional(),\n});\nexport const CloneServiceRequest = /*#__PURE__*/ z.object({\n sourceServiceId: z\n .string()\n .describe('ID of the service to clone.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n});\nexport const CloneServiceResponse = /*#__PURE__*/ z.object({\n service: z\n .object({\n _id: z\n .string()\n .describe('Service ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n appId: z\n .string()\n .describe(\n 'ID of the app associated with the service. You can\\'t update `appId`.\\nServices are displayed in Wix Bookings only if they are associated with the Wix Bookings appId or have no associated app ID.\\nDefault: `13d21c63-b5ec-5912-8397-c3a5ddb27a97` (Wix Bookings app ID)\\nFor services from Wix apps, the following values apply:\\n- Wix Bookings: `\"13d21c63-b5ec-5912-8397-c3a5ddb27a97\"`\\n- Wix Services: `\"cc552162-24a4-45e0-9695-230c4931ef40\"`\\n- Wix Meetings: `\"6646a75c-2027-4f49-976c-58f3d713ed0f\"`.<!-- [Scheduling Form Fields](https://dev.wix.com/docs/api-reference/business-solutions/bookings/about-scheduling-form-fields) services also use this app ID. Use `createdByAppId` to distinguish between Wix Meetings and Scheduling Form Fields services.-->\\n[Full list of apps created by Wix](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-apps-created-by-wix).\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n createdByAppId: z\n .string()\n .describe(\n \"ID of the app that created the service. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during service creation by checking these sources in order:\\n1. The caller's App ID from the request identity context.\\n2. The service's `appId` field.\\n3. The Wix Bookings App ID (`13d21c63-b5ec-5912-8397-c3a5ddb27a97`) as the final fallback.\\n<!-- TODO: Uncomment when Platform docs are published - Learn more about [app identity in the Bookings Platform](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings-platform/app-identity-in-the-bookings-platform). -->\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n type: z\n .enum(['APPOINTMENT', 'CLASS', 'COURSE'])\n .describe(\n 'Service type.\\nLearn more about [service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types).'\n )\n .optional(),\n sortOrder: z\n .number()\n .int()\n .describe(\n 'Order of the service within a [category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object).'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Service name.')\n .max(400)\n .min(1)\n .optional()\n .nullable(),\n description: z\n .string()\n .describe(\n 'Service description. For example, `High-class hair styling, cuts, straightening and color`.'\n )\n .max(7000)\n .optional()\n .nullable(),\n tagLine: z\n .string()\n .describe('Short service description, such as `Hair styling`.')\n .max(6000)\n .optional()\n .nullable(),\n defaultCapacity: z\n .number()\n .int()\n .describe(\n 'Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.'\n )\n .min(1)\n .max(1000)\n .optional()\n .nullable(),\n media: z\n .object({\n items: z\n .array(\n z.intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n )\n .max(100)\n .optional(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Primary media associated with the service.')\n .optional(),\n coverMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the service, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Cover media associated with the service.')\n .optional(),\n })\n .describe('Media associated with the service.')\n .optional(),\n hidden: z\n .boolean()\n .describe(\n 'Whether the service is hidden from Wix Bookings pages and widgets.'\n )\n .optional()\n .nullable(),\n category: z\n .object({\n _id: z\n .string()\n .describe('Category ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Category name.')\n .max(500)\n .optional()\n .nullable(),\n sortOrder: z\n .number()\n .int()\n .describe('Order of a category within a category list.')\n .optional()\n .nullable(),\n })\n .describe(\n \"[Category](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v2/introduction)\\nthe service is associated with. Services aren't automatically assigned to a category.\\nWithout an associated category, the service isn't visible on the live site.\"\n )\n .optional(),\n form: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the form associated with the service.\\nThe form information that you submit when booking includes contact details, participants, and other form fields set up for the service.\\nYou can manage the service booking form fields using the Bookings Forms API.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n })\n .describe('Form the customer filled out when booking the service.')\n .optional(),\n payment: z\n .intersection(\n z.object({\n rateType: z\n .enum(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE', 'SUBSCRIPTION'])\n .describe(\n 'The rate the customer is expected to pay for the service.'\n )\n .optional(),\n options: z\n .object({\n online: z\n .boolean()\n .describe(\n 'Customers can pay for the service online.\\nWhen `true`:\\n+ `rateType` must be `FIXED`, `VARIED`, or `SUBSCRIPTION`.\\n+ `fixed.price`, `varied.defaultPrice`, or `subscription.amountPerBillingCycle` must be specified respectively.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\\nRead more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).'\n )\n .optional()\n .nullable(),\n inPerson: z\n .boolean()\n .describe('Customers can pay for the service in person.')\n .optional()\n .nullable(),\n deposit: z\n .boolean()\n .describe(\n 'This service requires a deposit to be made online in order to book it.\\nWhen `true`:\\n+ `rateType` must be `VARIED` or `FIXED`.\\n+ A `deposit` must be specified.\\n+ `online` must be `true`.\\n+ `inPerson` must be `false`.'\n )\n .optional()\n .nullable(),\n pricingPlan: z\n .boolean()\n .describe(\n 'Whether customers can pay for the service using a pricing plan.\\nRead more about [service payment options](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The payment options a customer can use to pay for the service.'\n )\n .optional(),\n pricingPlanIds: z.array(z.string()).max(75).optional(),\n addOnOption: z\n .enum(['ONLINE', 'IN_PERSON'])\n .describe(\n 'How customers can pay for add-ons when paying for the related booking with a [pricing plan](https://dev.wix.com/docs/api-reference/business-solutions/pricing-plans/pricing-plans/introduction).\\nIf customers pay for the booking using any method other than a pricing plan, the value of this field is ignored.'\n )\n .optional(),\n discountInfo: z\n .object({\n discountName: z\n .string()\n .describe(\n 'Name of the discount. For example, `Summer Sale - 20% Off`.'\n )\n .min(1)\n .max(50)\n .optional(),\n priceAfterDiscount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Estimated price after applying the discount. The final price is determined at checkout and may differ when additional discounts are applied or rules are re-evaluated with complete booking information.\\n\\nNot returned when the discount depends on booking or cart context, for example a discount that applies to a service only when booked together with another service, or when the discount requires information only available at checkout.'\n )\n .optional(),\n })\n .describe(\n \"Estimated discount information for the service based on active [eCommerce discounts](https://dev.wix.com/docs/rest/business-solutions/e-commerce/extensions/discounts/introduction).\\nThe final discount is determined during eCommerce checkout and may differ from the estimate,\\nfor example when discounts depend on cart totals.\\n\\nA discount is considered active when its start time has passed and its end time hasn't.\\nIf multiple active discounts apply, the most recently created one is returned.\\n\\nReturned only when `DISCOUNT_INFO_DETAILS` is requested.\"\n )\n .optional(),\n }),\n z.xor([\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n fixed: z\n .object({\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The fixed price required to book the service.\\n\\nRequired when: `rateType` is `FIXED`'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the fixed price of the service.\\n\\nRequired when: `rateType` is `FIXED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n varied: z.never().optional(),\n subscription: z.never().optional(),\n custom: z\n .object({\n description: z\n .string()\n .describe(\n 'A custom description explaining to the customer how to pay for the service.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the custom price of the service.\\n\\nRequired when: `rateType` is `CUSTOM`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n subscription: z.never().optional(),\n varied: z\n .object({\n defaultPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The default price for the service without any variants. It will also be used as the default price for any new variant.'\n )\n .optional(),\n deposit: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The deposit price required to book the service.\\n\\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`'\n )\n .optional(),\n minPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The minimal price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n maxPrice: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'The maximum price a customer may pay for this service, based on its variants.'\n )\n .optional(),\n fullUpfrontPaymentAllowed: z\n .boolean()\n .describe(\n 'Whether customers can choose to pay the full service price upfront instead of only the deposit.\\n\\nUsed only when a `deposit` amount is set.\\n\\nDefault: `false`.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'The details for the varied pricing of the service.\\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\\n\\nRequired when: `rateType` is `VARIED`'\n ),\n }),\n z.object({\n fixed: z.never().optional(),\n custom: z.never().optional(),\n varied: z.never().optional(),\n subscription: z\n .object({\n amountPerBillingCycle: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Base price charged per billing cycle before tax and discounts.\\nThe actual amount charged may differ after checkout applies tax and discounts.'\n )\n .optional(),\n frequency: z\n .enum(['MONTHLY'])\n .describe(\n \"Billing frequency for recurring subscription charges.\\nReflected as `billingFrequency` in the booking's subscription info.\\n\\nCurrently supports `MONTHLY` only.\"\n )\n .optional(),\n totalPayments: z\n .number()\n .int()\n .describe(\n \"Total number of billing cycles in the subscription. For example, `12` for a 12-month subscription with monthly payments.\\nReflected as `totalCycles` in the booking's subscription info.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.\"\n )\n .min(2)\n .optional()\n .nullable(),\n firstChargeDate: z\n .enum(['CHECKOUT', 'SCHEDULED'])\n .describe(\n 'Determines when the first billing cycle payment is charged. Used together with `recurringStartDate` to define the subscription billing schedule.'\n )\n .optional(),\n recurringStartDate: z\n .date()\n .describe(\n 'Date and time when recurring billing starts.\\n\\nWhen `firstChargeDate` is `CHECKOUT`, the first charge occurs at checkout and subsequent billing cycles start from this date.\\n\\nWhen `firstChargeDate` is `SCHEDULED`, the first charge occurs on this date.\\n\\nCustomers who book after recurring billing starts are billed for the remaining billing cycles only.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n )\n .optional()\n .nullable(),\n enrollmentFeeAmount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Deprecated.')\n .optional(),\n })\n .describe(\n 'Subscription pricing details for the service. Supported for course services only.\\nThe business charges recurring monthly payments instead of a one-time fee.\\n\\nRequired when: `rateType` is `SUBSCRIPTION`.'\n ),\n }),\n ])\n )\n .describe(\n 'Payment options for booking the service.\\nLearn more about [service payments](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments).'\n )\n .optional(),\n onlineBooking: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the service can be booked online.\\nWhen set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.\\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person.'\n )\n .optional()\n .nullable(),\n requireManualApproval: z\n .boolean()\n .describe('Booking the service requires approval by the Wix user.')\n .optional()\n .nullable(),\n allowMultipleRequests: z\n .boolean()\n .describe(\n 'Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`.'\n )\n .optional()\n .nullable(),\n })\n .describe('Online booking settings.')\n .optional(),\n conferencing: z\n .object({\n enabled: z\n .boolean()\n .describe(\n \"Whether a conference link is generated for the service's sessions.\"\n )\n .optional()\n .nullable(),\n })\n .describe('Conferencing options for the service.')\n .optional(),\n locations: z\n .array(\n z.intersection(\n z.object({\n _id: z\n .string()\n .describe('Location ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n type: z\n .enum(['CUSTOM', 'BUSINESS', 'CUSTOMER'])\n .describe('Location type.\\n\\nDefault: `CUSTOM`')\n .optional(),\n calculatedAddress: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Location address. Empty for `{\"type\": \"CUSTOMER\"}`.')\n .optional(),\n }),\n z.xor([\n z.object({\n business: z.never().optional(),\n custom: z.never().optional(),\n }),\n z.object({\n custom: z.never().optional(),\n business: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the business [location](https://dev.wix.com/docs/api-reference/business-management/locations/introduction).\\nWhen setting a business location, specify only the location ID. Other location details are overwritten.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Business location name.')\n .max(150)\n .optional(),\n default: z\n .boolean()\n .describe(\n 'Whether this is the default location. There can only be a single default location per site.'\n )\n .optional()\n .nullable(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Business location address.')\n .optional(),\n email: z\n .string()\n .describe('Business location email.')\n .email()\n .optional()\n .nullable(),\n phone: z\n .string()\n .describe('Business location phone.')\n .optional()\n .nullable(),\n })\n .describe(\n 'Information about business locations. Required when `type` is `BUSINESS`.'\n ),\n }),\n z.object({\n business: z.never().optional(),\n custom: z\n .object({\n _id: z\n .string()\n .describe('ID of the custom location.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n address: z\n .object({\n city: z.string().optional().nullable(),\n subdivision: z.string().optional().nullable(),\n country: z.string().optional().nullable(),\n postalCode: z.string().optional().nullable(),\n addressLine1: z.string().optional().nullable(),\n })\n .describe('Address of the custom location.')\n .optional(),\n })\n .describe(\n 'Information about custom locations. Required when `type` is `CUSTOM`.'\n ),\n }),\n ])\n )\n )\n .max(500)\n .optional(),\n bookingPolicy: z\n .object({\n _id: z\n .string()\n .describe('The ID to the policy for the booking.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n _createdDate: z\n .date()\n .describe('Date and time the policy was created.')\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe('Date and time the policy was updated.')\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the policy.')\n .max(400)\n .optional()\n .nullable(),\n customPolicyDescription: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the description should be displayed. If `true`, the description is displayed.\\n\\nDefault: `false`'\n )\n .optional(),\n description: z\n .string()\n .describe(\n 'The description to display.\\n\\nDefault: Empty\\nMax length: 2500 characters'\n )\n .max(2500)\n .optional(),\n })\n .describe(\n 'Custom description for the policy. This policy is displayed to the participant.'\n )\n .optional(),\n default: z\n .boolean()\n .describe('Whether the policy is the default for the meta site.')\n .optional()\n .nullable(),\n limitEarlyBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how early a customer\\ncan book. When `false`, there is no limit on the earliest\\nbooking time and customers can book in advance, as early as they like.\\n\\nDefault: `false`'\n )\n .optional(),\n earliestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\\n\\nDefault: 10080 minutes (7 days)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting early bookings.')\n .optional(),\n limitLateBookingPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether there is a limit on how late a customer\\ncan book. When `false`, there is no limit on the latest\\nbooking time and customers can book up to the last minute.\\n\\nDefault: `false`'\n )\n .optional(),\n latestBookingInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the session that a booking can be made.\\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy for limiting late bookings.')\n .optional(),\n bookAfterStartPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether booking is allowed after the start of the schedule. When `true`,\\ncustomers can book after the start of the schedule.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe(\n 'Policy on booking an entity after the start of the schedule.'\n )\n .optional(),\n cancellationPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking is allowed. When `true`, customers\\ncan cancel the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestCancellation: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest cancellation time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestCancellationInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be canceled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this cancellation policy allows anonymous cancellations.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the cancellation\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot cancel\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous cancellations are allowed by default\\nso that customers aren't required to be site members to cancel their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for canceling a booked entity.')\n .optional(),\n reschedulePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether rescheduling a booking is allowed. When `true`, customers\\ncan reschedule the booking.\\n\\nDefault: `false`'\n )\n .optional(),\n limitLatestReschedule: z\n .boolean()\n .describe(\n 'Whether there is a limit on the latest reschedule time. When `true`,\\na time limit is enforced.\\n\\nDefault: `false`'\n )\n .optional(),\n latestRescheduleInMinutes: z\n .number()\n .int()\n .describe(\n 'Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\\n\\nDefault: 1440 minutes (1 day)\\nMin: 1 minute'\n )\n .min(1)\n .optional(),\n allowAnonymous: z\n .boolean()\n .describe(\n \"Whether this reschedule policy allows anonymous rescheduling.\\n\\n**Important**: This flag only applies when `enabled` is `true`. If the reschedule\\npolicy itself is disabled (`enabled` = `false`), anonymous users cannot reschedule\\nregardless of this flag's value.\\n\\nWhen not set (null), defaults to enabled. Anonymous rescheduling is allowed by default\\nso that customers aren't required to be site members to reschedule their bookings.\\n\\nDefault: `null` (treated as `true`)\"\n )\n .optional()\n .nullable(),\n })\n .describe('Policy for rescheduling a booked entity.')\n .optional(),\n waitlistPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether the session has a waitlist. If `true`, there is a waitlist.\\n\\nDefault: `false`'\n )\n .optional(),\n capacity: z\n .number()\n .int()\n .describe(\n 'Number of spots available in the waitlist.\\n\\nDefault: 10 spots\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n reservationTimeInMinutes: z\n .number()\n .int()\n .describe(\n 'Amount of time a participant is given to book, once notified that a spot is available.\\n\\nDefault: 10 minutes\\nMin: 1 spot'\n )\n .min(1)\n .optional(),\n })\n .describe('Waitlist policy for the service.')\n .optional(),\n participantsPolicy: z\n .object({\n maxParticipantsPerBooking: z\n .number()\n .int()\n .describe(\n 'Maximum number of participants allowed.\\n\\nDefault: 1 participant\\nMin: 1 participant'\n )\n .min(1)\n .optional(),\n })\n .describe('Policy regarding the participants per booking.')\n .optional(),\n resourcesPolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n '`true` if this policy is enabled, `false` otherwise.\\nWhen `false` then the client must always select a resource when booking an appointment.'\n )\n .optional(),\n autoAssignAllowed: z\n .boolean()\n .describe(\n '`true`, if it is allowed to automatically assign a resource when booking an appointment,\\n`false`, if the client must always select a resource.\\n\\nDefault: `false`'\n )\n .optional(),\n })\n .describe('Policy for allocating resources.')\n .optional(),\n cancellationFeePolicy: z\n .object({\n enabled: z\n .boolean()\n .describe(\n 'Whether canceling a booking will result in a cancellation fee\\n\\nDefault: `false`'\n )\n .optional(),\n cancellationWindows: z\n .array(\n z.intersection(\n z.object({\n startInMinutes: z\n .number()\n .int()\n .describe(\n 'The fee will be applied if the booked session starts within this start time in minutes.'\n )\n .min(1)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n amount: z.never().optional(),\n percentage: z.never().optional(),\n }),\n z.object({\n percentage: z.never().optional(),\n amount: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe(\n 'Amount to be charged as a cancellation fee.'\n ),\n }),\n z.object({\n amount: z.never().optional(),\n percentage: z\n .string()\n .describe(\n 'Percentage of the original price to be charged as a cancellation fee.'\n ),\n }),\n ])\n )\n )\n .max(2)\n .optional(),\n autoCollectFeeEnabled: z\n .boolean()\n .describe(\n 'Whether the cancellation fee should not be automatically collected when customer cancels the booking.\\n\\nDefault: `true`'\n )\n .optional()\n .nullable(),\n })\n .describe('Rules for cancellation fees.')\n .optional(),\n saveCreditCardPolicy: z\n .object({\n enabled: z.boolean().describe('Default: `false`').optional(),\n })\n .describe('Rule for saving credit card.')\n .optional(),\n })\n .describe(\n '[Policy](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction)\\ndetermining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.'\n )\n .optional(),\n schedule: z\n .object({\n _id: z\n .string()\n .describe(\n \"ID of the [schedule](https://dev.wix.com/docs/api-reference/business-management/calendar/schedules-v3/introduction)\\nto which the service's events belong.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n firstSessionStart: z\n .date()\n .describe(\n 'Start time of the first session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n lastSessionEnd: z\n .date()\n .describe(\n 'End time of the last session in the schedule. For courses only.'\n )\n .optional()\n .nullable(),\n availabilityConstraints: z\n .object({\n durations: z\n .array(\n z.object({\n minutes: z\n .number()\n .int()\n .describe('The duration of the service in minutes.')\n .min(1)\n .max(44639)\n .optional(),\n })\n )\n .max(50)\n .optional(),\n sessionDurations: z.array(z.number().int()).max(50).optional(),\n timeBetweenSessions: z\n .number()\n .int()\n .describe(\n 'The number of minutes between the end of a session and the start of the next.'\n )\n .min(0)\n .max(720)\n .optional(),\n durationRange: z\n .intersection(\n z.object({\n unitType: z\n .enum(['HOUR', 'DAY'])\n .describe(\n 'The unit type for this duration range. Determines which configuration to use in the `config` union.'\n )\n .optional(),\n }),\n z.xor([\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z.never().optional(),\n }),\n z.object({\n dayOptions: z.never().optional(),\n hourOptions: z\n .object({\n minDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in minutes. The customer can't book for less than this duration.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n maxDurationInMinutes: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in minutes. The customer can't book for more than this duration.\\n\\nMust be greater than or equal to `minDurationInMinutes`.\"\n )\n .min(30)\n .max(1440)\n .optional(),\n })\n .describe(\n 'Configuration for hourly duration ranges. Set when `unitType` is `HOUR`.'\n ),\n }),\n z.object({\n hourOptions: z.never().optional(),\n dayOptions: z\n .object({\n minDurationInDays: z\n .number()\n .int()\n .describe(\n \"Minimum bookable duration in days. The customer can't book for less than this number of days.\"\n )\n .min(1)\n .max(8)\n .optional(),\n maxDurationInDays: z\n .number()\n .int()\n .describe(\n \"Maximum bookable duration in days. The customer can't book for more than this number of days.\\n\\nMust be greater than or equal to `minDurationInDays`.\"\n )\n .min(1)\n .max(8)\n .optional(),\n })\n .describe(\n 'Configuration for daily duration ranges. Set when `unitType` is `DAY`.'\n ),\n }),\n ])\n )\n .describe(\n \"Duration range for the service. When set, the customer picks a duration\\nwithin the configured min/max range instead of a fixed session duration.\\nMutually exclusive with `sessionDurations`. A service uses one or the other.\\nCan't be combined with `workingHours`.\\n\\nUse `durationRange` for services where the customer chooses how long to book,\\nsuch as equipment or space rentals. The `unitType` determines whether the range\\nis measured in hours or days.\"\n )\n .optional(),\n })\n .describe('Limitations affecting the service availability.')\n .optional(),\n })\n .describe(\n \"The service's [schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction),\\nwhich can be used to manage the service's [events](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\"\n )\n .optional(),\n staffMemberIds: z.array(z.string()).max(220).optional(),\n staffMemberDetails: z\n .object({\n staffMembers: z\n .array(\n z.object({\n staffMemberId: z\n .string()\n .describe(\n \"ID of the [resource](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction) associated with the staff member providing the service.\\nDespite the field name, this is the resource ID, not the staff member ID.\\nThis value matches the staff member's `resourceId` from the [Staff Members API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/staff-members/staff-members/introduction)\\nand corresponds to the IDs in the service's `staffMemberIds` field.\"\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional(),\n name: z\n .string()\n .describe('Name of the staff member')\n .max(40)\n .optional()\n .nullable(),\n mainMedia: z\n .intersection(\n z.object({}),\n z.xor([\n z.object({ image: z.never().optional() }),\n z.object({\n image: z\n .string()\n .describe(\n 'Details of the image associated with the staff, such as URL and size.'\n ),\n }),\n ])\n )\n .describe('Main media associated with the service.')\n .optional(),\n })\n )\n .max(220)\n .optional(),\n })\n .describe(\n 'Staff members details. Returned only if `STAFF_MEMBER_DETAILS` conditional field was specified.'\n )\n .optional(),\n serviceResources: z\n .array(\n z.intersection(\n z.object({\n resourceType: z\n .object({\n _id: z\n .string()\n .describe('The type of the resource.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('The name of the resource type.')\n .max(40)\n .min(1)\n .optional()\n .nullable(),\n })\n .describe(\n 'Details about the required [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n )\n .optional(),\n }),\n z.xor([\n z.object({ resourceIds: z.never().optional() }),\n z.object({\n resourceIds: z\n .object({ values: z.array(z.string()).max(100).optional() })\n .describe(\n 'IDs of specific [resources](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resources-v2/introduction)\\nassigned to this service resource. Each ID must reference a resource within the specified `resourceType`.\\n\\nWhen set, only these resources are considered for availability and booking.\\nWhen not set, all resources of the specified resource type are eligible.'\n ),\n }),\n ])\n )\n )\n .max(8)\n .optional(),\n supportedSlugs: z\n .array(\n z.object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n )\n .max(100)\n .optional(),\n mainSlug: z\n .object({\n name: z\n .string()\n .describe(\n \"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`.\"\n )\n .max(500)\n .optional(),\n custom: z\n .boolean()\n .describe(\n '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.'\n )\n .optional()\n .nullable(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the slug was created. This is a system field.'\n )\n .optional()\n .nullable(),\n })\n .describe(\n 'Active slug for the service.\\nLearn more about [service slugs](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs).'\n )\n .optional(),\n urls: z\n .object({\n servicePage: z\n .string()\n .describe('The URL for the service page.')\n .optional(),\n bookingPage: z\n .string()\n .describe(\n 'The URL for the booking entry point. It can be either to the calendar or to the service page.'\n )\n .optional(),\n calendarPage: z\n .string()\n .describe(\n 'The URL for the calendar. Can be empty if no calendar exists.'\n )\n .optional(),\n })\n .describe(\n 'URLs to various service-related pages, such as the calendar page and the booking page.'\n )\n .optional(),\n extendedFields: z\n .object({\n namespaces: z\n .record(z.string(), z.record(z.string(), z.any()))\n .describe(\n 'Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\\nThe value of each key is structured according to the schema defined when the extended fields were configured.\\n\\nYou can only access fields for which you have the appropriate permissions.\\n\\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).'\n )\n .optional(),\n })\n .describe(\n 'Extensions enabling users to save custom data related to the service.'\n )\n .optional(),\n seoData: z\n .object({\n tags: z\n .array(\n z.object({\n type: z\n .string()\n .describe(\n 'SEO tag type.\\n\\n\\nSupported values: `title`, `meta`, `script`, `link`.\\n\\nWhich of these an API actually accepts depends on where the tag is being set: this\\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\\n`title`/`script`/`link` with a validation error even though they appear here —\\ncheck the field description of the specific `tags`-typed field you\\'re writing to\\nfor the types it actually supports and the error it returns.\\n\\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\\n`\"application/ld+json\"` carrying structured data) are supported only when\\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\\nwrite through the site\\'s Advanced/Custom Tags list. To write structured data,\\nomit `custom` (or set it to `false`).'\n )\n .optional(),\n props: z\n .record(z.string(), z.any())\n .describe(\n 'A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\\nFor example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.'\n )\n .optional()\n .nullable(),\n meta: z\n .record(z.string(), z.any())\n .describe(\n 'SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`.'\n )\n .optional()\n .nullable(),\n children: z\n .string()\n .describe(\n 'SEO tag inner content. For example, `<title> inner content </title>`.'\n )\n .optional(),\n custom: z\n .boolean()\n .describe(\n \"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —\\ni.e. an entry from the site's Advanced/Custom Tags list.\\n\\nSetting this to `true` on a write restricts which `type` values are accepted\\n— the same restriction the Advanced/Custom Tags UI enforces. `title` and\\n`script` tags (including JSON-LD structured data) must be sent with `custom`\\nomitted or `false`; sending them with `custom: true` is rejected with\\n`TAG_TYPE_NOT_ALLOWED`.\\n\\nNote this is a separate restriction from Site SEO Tags' own type restriction on\\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\\nfor site-wide structured data) unconditionally. There is currently no way to set\\nsite-wide, every-page structured data through any of these APIs — write a per-page\\n`script` tag through the Item SEO Tags API instead.\\n\\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\\ndefault/pattern — standard tags always resolve with `custom: false`, even when their content comes\\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\\na live page reflects a manual per-page SEO edit.\\n\\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\\nresponse entirely — there, `false` means this API could not tell, not that no custom tag exists.\\nPass `seoData` explicitly to resolve against a known set of tags.\"\n )\n .optional(),\n disabled: z\n .boolean()\n .describe(\n \"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.\"\n )\n .optional(),\n })\n )\n .optional(),\n settings: z\n .object({\n preventAutoRedirect: z\n .boolean()\n .describe(\n 'Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\\n\\n\\nDefault: `false` (automatical redirect is enabled).'\n )\n .optional(),\n keywords: z\n .array(\n z.object({\n term: z.string().describe('Keyword value.').optional(),\n isMain: z\n .boolean()\n .describe(\n 'Whether the keyword is the main focus keyword.'\n )\n .optional(),\n origin: z\n .string()\n .describe(\n 'The source that added the keyword terms to the SEO settings.'\n )\n .max(1000)\n .optional()\n .nullable(),\n })\n )\n .max(5)\n .optional(),\n })\n .describe('SEO general settings.')\n .optional(),\n })\n .describe('Custom SEO data for the service.')\n .optional(),\n _createdDate: z\n .date()\n .describe(\n 'Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n _updatedDate: z\n .date()\n .describe(\n 'Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n )\n .optional()\n .nullable(),\n revision: z\n .string()\n .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n .describe(\n 'Revision number, which increments by 1 each time the service is updated. To\\nprevent conflicting changes, the existing revision must be used when updating\\na service.'\n )\n .optional()\n .nullable(),\n addOnGroups: z\n .array(\n z.object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n addOnDetails: z\n .array(\n z.object({\n addOnId: z\n .string()\n .describe('ID of the add-on.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for add-ons that extend service time.\\nEmpty for [quantity-based add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction#terminology).'\n )\n .optional()\n .nullable(),\n })\n )\n .max(50)\n .optional(),\n taxableAddress: z\n .object({\n taxableAddressType: z\n .enum(['BUSINESS', 'BILLING'])\n .describe('Taxable address type.')\n .optional(),\n })\n .describe('Taxable address used to calculate tax')\n .optional(),\n primaryResourceType: z\n .string()\n .describe(\n 'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction)\\nthat serves as the primary resource for this appointment service. The primary resource type\\ndetermines which resources drive slot assignment and availability resolution.\\n\\nFor example, when set to a \"Meeting Rooms\" resource type, availability is calculated\\nbased on the rooms\\' schedules rather than staff schedules.\\n\\nDefault: The staff resource type.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n })\n .describe('Cloned service.')\n .optional(),\n errors: z.array(z.enum(['OPTIONS_AND_VARIANTS', 'FORM'])).optional(),\n});\nexport const CreateAddOnGroupRequest = /*#__PURE__*/ z.object({\n addOnGroup: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z.string().describe('Name of the add-on group.').max(100),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n .describe('Add-on group to create.'),\n options: z.object({\n serviceId: z\n .string()\n .describe('ID of the service to create the add-on group for.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n }),\n});\nexport const CreateAddOnGroupResponse = /*#__PURE__*/ z.object({\n addOnGroup: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n .describe('Created add-on group.')\n .optional(),\n});\nexport const DeleteAddOnGroupRequest = /*#__PURE__*/ z.object({\n addOnGroupId: z\n .string()\n .describe('ID of the add-on group to delete.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z.object({\n serviceId: z\n .string()\n .describe('ID of the service from which to delete the add-on group.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n }),\n});\nexport const DeleteAddOnGroupResponse = /*#__PURE__*/ z.object({});\nexport const UpdateAddOnGroupRequest = /*#__PURE__*/ z.object({\n addOnGroup: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n .describe('Add-on group to update.'),\n options: z.object({\n serviceId: z\n .string()\n .describe('ID of the service that contains the add-on group.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n }),\n});\nexport const UpdateAddOnGroupResponse = /*#__PURE__*/ z.object({\n addOnGroup: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n .describe('Updated add-on group.')\n .optional(),\n});\nexport const ListAddOnGroupsByServiceIdRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('ID of the service to retrieve add-on groups for.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z\n .object({ groupIds: z.array(z.string()).max(3).optional() })\n .optional(),\n});\nexport const ListAddOnGroupsByServiceIdResponse = /*#__PURE__*/ z.object({\n addOnGroupsDetails: z\n .array(\n z.object({\n groupId: z\n .string()\n .describe('Group ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n 'Maximum number of add-ons customers can select from this group.'\n )\n .optional()\n .nullable(),\n groupName: z\n .string()\n .describe('Group name displayed to customers.')\n .max(100)\n .optional()\n .nullable(),\n addOns: z\n .array(\n z.intersection(\n z.object({\n addOnId: z\n .string()\n .describe('Add-on ID.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Add-on name displayed to customers.')\n .max(100)\n .optional()\n .nullable(),\n price: z\n .object({\n value: z\n .string()\n .describe(\n 'Monetary amount. Decimal string with a period as a decimal separator. For example `25.05`.'\n )\n .optional(),\n currency: z\n .string()\n .describe(\n 'Currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217). For example, `USD`.'\n )\n .optional(),\n formattedValue: z\n .string()\n .describe(\n 'Monetary amount. Decimal string in local format. For example, `1 000,30`.'\n )\n .max(50)\n .optional()\n .nullable(),\n })\n .describe('Add-on price.')\n .optional(),\n nameTranslated: z\n .string()\n .describe('Translated add-on name.')\n .max(100)\n .optional()\n .nullable(),\n }),\n z.xor([\n z.object({\n durationInMinutes: z.never().optional(),\n maxQuantity: z.never().optional(),\n }),\n z.object({\n maxQuantity: z.never().optional(),\n durationInMinutes: z\n .number()\n .int()\n .describe(\n 'Duration in minutes for duration-based add-ons that extend booking service time.'\n ),\n }),\n z.object({\n durationInMinutes: z.never().optional(),\n maxQuantity: z\n .number()\n .int()\n .describe(\n 'Maximum quantity customers can purchase for quantity-based add-ons.'\n ),\n }),\n ])\n )\n )\n .max(7)\n .optional(),\n prompt: z\n .string()\n .describe(\n 'Instructional prompt displayed to customers. For example, `Choose up to 2 relaxing spa treatments to enhance your experience`. You can also use this field as a group description. For example, `Beginner-friendly rental equipment`.'\n )\n .max(200)\n .optional()\n .nullable(),\n groupNameTranslated: z\n .string()\n .describe('Translated group name.')\n .max(100)\n .optional()\n .nullable(),\n promptTranslated: z\n .string()\n .describe(\n 'Instructional translated prompt displayed to customers. For example, `Choose up to 2 relaxing spa treatments to enhance your experience`. You can also use this field as a group description. For example, `Beginner-friendly rental equipment`.'\n )\n .max(200)\n .optional()\n .nullable(),\n })\n )\n .max(3)\n .optional(),\n});\nexport const SetAddOnsForGroupRequest = /*#__PURE__*/ z.object({\n serviceId: z\n .string()\n .describe('Service ID containing the group.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n options: z.object({\n groupId: z\n .string()\n .describe('Group ID to set add-ons for.')\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n ),\n addOnIds: z.array(z.string()).min(1).max(7),\n }),\n});\nexport const SetAddOnsForGroupResponse = /*#__PURE__*/ z.object({\n addOnGroup: z\n .object({\n _id: z\n .string()\n .describe(\n 'ID of the add-on group.\\nWix Bookings automatically populates this field when creating or updating an add-on group.'\n )\n .regex(\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n 'Must be a valid GUID'\n )\n .optional()\n .nullable(),\n name: z\n .string()\n .describe('Name of the add-on group.')\n .max(100)\n .optional()\n .nullable(),\n maxNumberOfAddOns: z\n .number()\n .int()\n .describe(\n \"Maximum number of different [add-ons](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/add-ons/introduction) from the group customers can add when booking the service.\\nWhen empty, there's no upper limit.\"\n )\n .optional()\n .nullable(),\n addOnIds: z.array(z.string()).max(7).optional(),\n prompt: z\n .string()\n .describe(\n \"Description or instructional prompt of the add-on group that's displayed to customers when booking the service.\"\n )\n .max(200)\n .optional()\n .nullable(),\n })\n .describe('Updated add-on group.')\n .optional(),\n});\n"],"mappings":"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","names":[]}
|