{"version":3,"sources":["../../../src/bookings-services-v2-service-services.schemas.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const CreateServiceRequest = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Service to create.'),\n});\nexport const CreateServiceResponse = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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              )\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      }),\n      z.xor([\n        z.object({\n          fixed: z.never().optional(),\n          custom: z.never().optional(),\n          varied: z.never().optional(),\n        }),\n        z.object({\n          custom: z.never().optional(),\n          varied: 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          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          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      ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                    'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                  )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n            )\n            .min(0)\n            .max(720)\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  serviceResources: z\n    .array(\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    )\n    .max(3)\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              )\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).'\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});\nexport const BulkCreateServicesRequest = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                    )\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            }),\n            z.xor([\n              z.object({\n                fixed: z.never().optional(),\n                custom: z.never().optional(),\n                varied: z.never().optional(),\n              }),\n              z.object({\n                custom: z.never().optional(),\n                varied: 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                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                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            ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                          'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                        )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                  )\n                  .min(0)\n                  .max(720)\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        serviceResources: z\n          .array(\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          )\n          .max(3)\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                    )\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).'\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      })\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 = 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\"`\\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(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                        )\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                }),\n                z.xor([\n                  z.object({\n                    fixed: z.never().optional(),\n                    custom: z.never().optional(),\n                    varied: z.never().optional(),\n                  }),\n                  z.object({\n                    custom: z.never().optional(),\n                    varied: 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                    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                    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                ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 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\\nMin: `0` minutes\\nMax: `720` minutes'\n                      )\n                      .min(0)\n                      .max(720)\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            serviceResources: z\n              .array(\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              )\n              .max(3)\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                        )\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).'\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          })\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 = 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});\nexport const GetServiceResponse = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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              )\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      }),\n      z.xor([\n        z.object({\n          fixed: z.never().optional(),\n          custom: z.never().optional(),\n          varied: z.never().optional(),\n        }),\n        z.object({\n          custom: z.never().optional(),\n          varied: 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          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          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      ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                    'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                  )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n            )\n            .min(0)\n            .max(720)\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  serviceResources: z\n    .array(\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    )\n    .max(3)\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              )\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).'\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});\nexport const UpdateServiceRequest = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Service to update.'),\n});\nexport const UpdateServiceResponse = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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              )\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      }),\n      z.xor([\n        z.object({\n          fixed: z.never().optional(),\n          custom: z.never().optional(),\n          varied: z.never().optional(),\n        }),\n        z.object({\n          custom: z.never().optional(),\n          varied: 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          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          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      ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                    'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                  )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n            )\n            .min(0)\n            .max(720)\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  serviceResources: z\n    .array(\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    )\n    .max(3)\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              )\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).'\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});\nexport const BulkUpdateServicesRequest = 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\"`\\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(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                            )\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                    }),\n                    z.xor([\n                      z.object({\n                        fixed: z.never().optional(),\n                        custom: z.never().optional(),\n                        varied: z.never().optional(),\n                      }),\n                      z.object({\n                        custom: z.never().optional(),\n                        varied: 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                        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                        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                    ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 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\\nMin: `0` minutes\\nMax: `720` minutes'\n                          )\n                          .min(0)\n                          .max(720)\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                serviceResources: z\n                  .array(\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                  )\n                  .max(3)\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                            )\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).'\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              })\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 = 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\"`\\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(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                        )\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                }),\n                z.xor([\n                  z.object({\n                    fixed: z.never().optional(),\n                    custom: z.never().optional(),\n                    varied: z.never().optional(),\n                  }),\n                  z.object({\n                    custom: z.never().optional(),\n                    varied: 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                    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                    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                ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 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\\nMin: `0` minutes\\nMax: `720` minutes'\n                      )\n                      .min(0)\n                      .max(720)\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            serviceResources: z\n              .array(\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              )\n              .max(3)\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                        )\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).'\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          })\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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                    )\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            }),\n            z.xor([\n              z.object({\n                fixed: z.never().optional(),\n                custom: z.never().optional(),\n                varied: z.never().optional(),\n              }),\n              z.object({\n                custom: z.never().optional(),\n                varied: 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                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                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            ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                          'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                        )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                  )\n                  .min(0)\n                  .max(720)\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        serviceResources: z\n          .array(\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          )\n          .max(3)\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                    )\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).'\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      })\n      .describe('Service to update.'),\n  }),\n});\nexport const BulkUpdateServicesByFilterResponse = 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 = 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 = z.object({});\nexport const BulkDeleteServicesRequest = 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 = 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\"`\\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(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                        )\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                }),\n                z.xor([\n                  z.object({\n                    fixed: z.never().optional(),\n                    custom: z.never().optional(),\n                    varied: z.never().optional(),\n                  }),\n                  z.object({\n                    custom: z.never().optional(),\n                    varied: 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                    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                    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                ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 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\\nMin: `0` minutes\\nMax: `720` minutes'\n                      )\n                      .min(0)\n                      .max(720)\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            serviceResources: z\n              .array(\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              )\n              .max(3)\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                        )\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).'\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          })\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 = 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 = 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 = 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          '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                '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});\nexport const QueryServicesResponse = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                    )\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            }),\n            z.xor([\n              z.object({\n                fixed: z.never().optional(),\n                custom: z.never().optional(),\n                varied: z.never().optional(),\n              }),\n              z.object({\n                custom: z.never().optional(),\n                varied: 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                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                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            ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                          'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                        )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                  )\n                  .min(0)\n                  .max(720)\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        serviceResources: z\n          .array(\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          )\n          .max(3)\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                    )\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).'\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      })\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 = 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          '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                '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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                    )\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            }),\n            z.xor([\n              z.object({\n                fixed: z.never().optional(),\n                custom: z.never().optional(),\n                varied: z.never().optional(),\n              }),\n              z.object({\n                custom: z.never().optional(),\n                varied: 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                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                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            ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                          'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                        )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                  )\n                  .min(0)\n                  .max(720)\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        serviceResources: z\n          .array(\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          )\n          .max(3)\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                    )\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).'\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      })\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 = 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 = 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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\"`\\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(['FIXED', 'CUSTOM', 'VARIED', 'NO_FEE'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                          )\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                  }),\n                  z.xor([\n                    z.object({\n                      fixed: z.never().optional(),\n                      custom: z.never().optional(),\n                      varied: z.never().optional(),\n                    }),\n                    z.object({\n                      custom: z.never().optional(),\n                      varied: 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                      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                      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                  ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 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\\nMin: `0` minutes\\nMax: `720` minutes'\n                        )\n                        .min(0)\n                        .max(720)\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              serviceResources: z\n                .array(\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                )\n                .max(3)\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                          )\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).'\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            })\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 = 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 = 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 = 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 = z.object({\n  count: z\n    .number()\n    .int()\n    .describe('Number of services matching the specified filter.')\n    .optional(),\n});\nexport const QueryLocationsRequest = 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 = 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('Information about business locations.'),\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('Information about custom locations.'),\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 = 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 = 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 = 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('Information about business locations.'),\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('Information about custom locations.'),\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('Information about business locations.'),\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('Information about custom locations.'),\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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('The updated service with the newly set locations.')\n    .optional(),\n});\nexport const EnablePricingPlansForServiceRequest = 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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Updated service.')\n    .optional(),\n});\nexport const DisablePricingPlansForServiceRequest = 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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Updated service.')\n    .optional(),\n});\nexport const SetCustomSlugRequest = 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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Updated service.')\n    .optional(),\n});\nexport const ValidateSlugRequest = 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 = 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 = 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 = 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\"`\\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'])\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` or `VARIED`.\\n+ `fixed.price` or `varied.defaultPrice` must be specified respectively.\\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                  )\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          }),\n          z.xor([\n            z.object({\n              fixed: z.never().optional(),\n              custom: z.never().optional(),\n              varied: z.never().optional(),\n            }),\n            z.object({\n              custom: z.never().optional(),\n              varied: 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              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              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          ])\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('Information about business locations.'),\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('Information about custom locations.'),\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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 disabled.\\n\\nDefault: `null` (treated as disabled)\"\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(\n                        'The duration of the service in minutes.\\n\\nMin: `1` minute\\nMax: `44639` minutes (30 days, 23 hours, and 59 minutes)'\n                      )\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\\nMin: `0` minutes\\nMax: `720` minutes'\n                )\n                .min(0)\n                .max(720)\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      serviceResources: z\n        .array(\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        )\n        .max(3)\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                  )\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).'\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    })\n    .describe('Cloned service.')\n    .optional(),\n  errors: z.array(z.enum(['OPTIONS_AND_VARIANTS', 'FORM'])).optional(),\n});\nexport const CreateAddOnGroupRequest = 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 = 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 = 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 = z.object({});\nexport const UpdateAddOnGroupRequest = 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 = 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 = 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 = 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 = 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 = 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":[]}