{"version":3,"sources":["../../src/bookings-v2-price-info-pricing.schemas.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const PreviewPriceRequest = z.object({\n  bookingLineItems: z\n    .array(\n      z.object({\n        serviceId: z\n          .string()\n          .describe(\n            \"[Service ID](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction).\\n\\nRequired parameter in:\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for all service types. All line items must have the same service ID.\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) when using Wix Bookings' default pricing logic. Optional in Calculate Price when using a Pricing Service Provider Plugin.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        resourceId: z\n          .string()\n          .describe(\n            '[Resource ID](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction).\\n\\nRequired parameter in:\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) for all service types ([service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types)).\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for appointment-based services and classes. Optional in Preview Price for courses.'\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        choices: z\n          .array(\n            z.intersection(\n              z.object({\n                optionId: z\n                  .string()\n                  .describe(\n                    'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                  )\n                  .regex(\n                    /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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              z.xor([\n                z.object({\n                  custom: z.never().optional(),\n                  duration: z.never().optional(),\n                }),\n                z.object({\n                  duration: z.never().optional(),\n                  custom: z\n                    .string()\n                    .describe(\n                      'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                    ),\n                }),\n                z.object({\n                  custom: z.never().optional(),\n                  duration: z.object({\n                    minutes: z\n                      .number()\n                      .int()\n                      .describe(\n                        'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                      )\n                      .min(1)\n                      .max(44639)\n                      .optional(),\n                    name: z\n                      .string()\n                      .describe(\n                        'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                      )\n                      .max(255)\n                      .optional()\n                      .nullable(),\n                  }),\n                }),\n              ])\n            )\n          )\n          .optional(),\n        numberOfParticipants: z\n          .number()\n          .int()\n          .describe(\n            '__Deprecated.__ Use `serviceChoices.numberOfParticipants` instead.\\n\\nNumber of participants for the line item.'\n          )\n          .min(1)\n          .optional()\n          .nullable(),\n        pricePerParticipant: z\n          .number()\n          .describe(\n            '__Deprecated.__ Use `serviceChoices.pricePerParticipant` instead.\\n\\nPrice per participant for the line item.'\n          )\n          .optional()\n          .nullable(),\n        serviceChoices: z\n          .array(\n            z.object({\n              numberOfParticipants: z\n                .number()\n                .int()\n                .describe('Number of participants for this service variant.')\n                .min(1)\n                .optional()\n                .nullable(),\n              choices: z\n                .array(\n                  z.intersection(\n                    z.object({\n                      optionId: z\n                        .string()\n                        .describe(\n                          'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                        )\n                        .regex(\n                          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                    z.xor([\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.never().optional(),\n                      }),\n                      z.object({\n                        duration: z.never().optional(),\n                        custom: z\n                          .string()\n                          .describe(\n                            'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                          ),\n                      }),\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.object({\n                          minutes: z\n                            .number()\n                            .int()\n                            .describe(\n                              'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                            )\n                            .min(1)\n                            .max(44639)\n                            .optional(),\n                          name: z\n                            .string()\n                            .describe(\n                              'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                            )\n                            .max(255)\n                            .optional()\n                            .nullable(),\n                        }),\n                      }),\n                    ])\n                  )\n                )\n                .max(5)\n                .optional(),\n              pricePerParticipant: z\n                .number()\n                .describe('Price per participant for this service variant.')\n                .optional()\n                .nullable(),\n            })\n          )\n          .max(20)\n          .optional(),\n      })\n    )\n    .min(1)\n    .max(20),\n});\nexport const PreviewPriceResponse = z.object({\n  priceInfo: z\n    .intersection(\n      z.object({\n        bookingLineItems: z\n          .array(\n            z.object({\n              serviceId: z\n                .string()\n                .describe(\n                  \"[Service ID](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction).\\n\\nRequired parameter in:\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for all service types. All line items must have the same service ID.\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) when using Wix Bookings' default pricing logic. Optional in Calculate Price when using a Pricing Service Provider Plugin.\"\n                )\n                .regex(\n                  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                  'Must be a valid GUID'\n                )\n                .optional()\n                .nullable(),\n              resourceId: z\n                .string()\n                .describe(\n                  '[Resource ID](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction).\\n\\nRequired parameter in:\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) for all service types ([service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types)).\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for appointment-based services and classes. Optional in Preview Price for courses.'\n                )\n                .regex(\n                  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                  'Must be a valid GUID'\n                )\n                .optional()\n                .nullable(),\n              choices: z\n                .array(\n                  z.intersection(\n                    z.object({\n                      optionId: z\n                        .string()\n                        .describe(\n                          'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                        )\n                        .regex(\n                          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                    z.xor([\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.never().optional(),\n                      }),\n                      z.object({\n                        duration: z.never().optional(),\n                        custom: z\n                          .string()\n                          .describe(\n                            'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                          ),\n                      }),\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.object({\n                          minutes: z\n                            .number()\n                            .int()\n                            .describe(\n                              'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                            )\n                            .min(1)\n                            .max(44639)\n                            .optional(),\n                          name: z\n                            .string()\n                            .describe(\n                              'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                            )\n                            .max(255)\n                            .optional()\n                            .nullable(),\n                        }),\n                      }),\n                    ])\n                  )\n                )\n                .optional(),\n              numberOfParticipants: z\n                .number()\n                .int()\n                .describe(\n                  '__Deprecated.__ Use `serviceChoices.numberOfParticipants` instead.\\n\\nNumber of participants for the line item.'\n                )\n                .min(1)\n                .optional()\n                .nullable(),\n              pricePerParticipant: z\n                .number()\n                .describe(\n                  '__Deprecated.__ Use `serviceChoices.pricePerParticipant` instead.\\n\\nPrice per participant for the line item.'\n                )\n                .optional()\n                .nullable(),\n              serviceChoices: z\n                .array(\n                  z.object({\n                    numberOfParticipants: z\n                      .number()\n                      .int()\n                      .describe(\n                        'Number of participants for this service variant.'\n                      )\n                      .min(1)\n                      .optional()\n                      .nullable(),\n                    choices: z\n                      .array(\n                        z.intersection(\n                          z.object({\n                            optionId: z\n                              .string()\n                              .describe(\n                                'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                              )\n                              .regex(\n                                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                          z.xor([\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.never().optional(),\n                            }),\n                            z.object({\n                              duration: z.never().optional(),\n                              custom: z\n                                .string()\n                                .describe(\n                                  'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                                ),\n                            }),\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.object({\n                                minutes: z\n                                  .number()\n                                  .int()\n                                  .describe(\n                                    'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                                  )\n                                  .min(1)\n                                  .max(44639)\n                                  .optional(),\n                                name: z\n                                  .string()\n                                  .describe(\n                                    'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                                  )\n                                  .max(255)\n                                  .optional()\n                                  .nullable(),\n                              }),\n                            }),\n                          ])\n                        )\n                      )\n                      .max(5)\n                      .optional(),\n                    pricePerParticipant: z\n                      .number()\n                      .describe(\n                        'Price per participant for this service variant.'\n                      )\n                      .optional()\n                      .nullable(),\n                  })\n                )\n                .max(20)\n                .optional(),\n            })\n          )\n          .max(20)\n          .optional(),\n        deposit: z\n          .number()\n          .describe(\n            \"Total deposit the customer must pay when booking the service.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.options.deposit` is set to `true`.\"\n          )\n          .optional()\n          .nullable(),\n      }),\n      z.xor([\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n        }),\n        z.object({\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n          calculatedPrice: z\n            .number()\n            .describe(\n              \"Calculated total price. Available if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `FIXED`, `VARIED`, or `NO_FEE`.\"\n            ),\n        }),\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n          priceDescription: z\n            .string()\n            .describe(\n              \"Description of the total price.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `CUSTOM`.\"\n            ),\n        }),\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z\n            .object({\n              original: z\n                .string()\n                .describe(\n                  \"Price description in the site's main language.\\nRefer to the [Site Properties API](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/introduction) for more details.\"\n                )\n                .max(50)\n                .optional(),\n              translated: z\n                .string()\n                .describe(\n                  'Translated price description.\\nAvailable if the booking was made in a secondary language.'\n                )\n                .max(50)\n                .optional()\n                .nullable(),\n            })\n            .describe(\n              \"Description of the total price.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `CUSTOM`.\"\n            ),\n        }),\n      ])\n    )\n    .describe(\n      'Pricing information including individual line item costs and total estimated price.'\n    )\n    .optional(),\n});\nexport const CalculatePriceRequest = z.object({\n  booking: z\n    .intersection(\n      z.object({\n        _id: z\n          .string()\n          .describe('Booking 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        bookedEntity: z\n          .intersection(\n            z.object({\n              title: z\n                .string()\n                .describe(\n                  'Session title at the time of booking. If there is no pre-existing session,\\nfor example for appointment-based services, Wix Bookings sets `title` to the service name.'\n                )\n                .max(6000)\n                .optional()\n                .nullable(),\n              tags: z.array(z.string()).optional(),\n            }),\n            z.xor([\n              z.object({\n                slot: z.never().optional(),\n                schedule: z.never().optional(),\n              }),\n              z.object({\n                schedule: z.never().optional(),\n                slot: z\n                  .object({\n                    sessionId: z\n                      .string()\n                      .describe(\n                        'Session ID. For class bookings, this is the ID of the existing session.\\nFor appointment bookings, this field is typically empty during booking creation and gets populated when the booking is confirmed.\\n\\n__Migration Guidance__: Replace usage of this field with `eventId` from the [Time Slots V2 API](https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots/time-slots-v2/introduction).\\nYou can follow [these sample flows](https://dev.wix.com/docs/api-reference/business-solutions/bookings/end-to-end-booking-flows) for step-by-step guidance about determining availability and creating bookings.'\n                      )\n                      .optional()\n                      .nullable(),\n                    serviceId: z.string().describe('Service ID.').optional(),\n                    scheduleId: z.string().describe('Schedule ID.').optional(),\n                    eventId: z\n                      .string()\n                      .describe(\n                        'ID of the corresponding [event](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction).\\nAvailable for both appointment and class bookings, not available for course bookings.\\nFor appointment-based services, Wix Bookings automatically populates `eventId` when the booking `status` changes to `CONFIRMED`.\\nFor class bookings, Wix Bookings automatically populates `eventId` upon booking creation.'\n                      )\n                      .min(36)\n                      .max(250)\n                      .optional()\n                      .nullable(),\n                    startDate: z\n                      .string()\n                      .describe(\n                        'The start time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`.'\n                      )\n                      .optional()\n                      .nullable(),\n                    endDate: z\n                      .string()\n                      .describe(\n                        'The end time of this slot in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`.'\n                      )\n                      .optional()\n                      .nullable(),\n                    timezone: z\n                      .string()\n                      .describe(\n                        'Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database).\\nFor example, `America/New_York` or `UTC`. This is the time zone in which the slot was shown to the customer at the time of booking. Wix Bookings ensures that the slot is always displayed in this same time zone to the customer, including when they view or edit their booking in the future.'\n                      )\n                      .optional()\n                      .nullable(),\n                    resource: z\n                      .object({\n                        _id: z\n                          .string()\n                          .describe(\"ID of the booking's primary 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                        name: z\n                          .string()\n                          .describe(\"Resource's name at the time of booking.\")\n                          .max(40)\n                          .optional()\n                          .nullable(),\n                        email: z\n                          .string()\n                          .describe(\"Resource's email at the time of booking.\")\n                          .max(500)\n                          .optional()\n                          .nullable(),\n                        scheduleId: z\n                          .string()\n                          .describe(\n                            \"ID of the schedule belonging to the booking's primary resource.\"\n                          )\n                          .regex(\n                            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                            'Must be a valid GUID'\n                          )\n                          .optional()\n                          .nullable(),\n                      })\n                      .describe(\n                        '[Primary resource](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction) for the booking.\\nFor example, the [staff member](https://dev.wix.com/docs/rest/business-solutions/bookings/staff-members/introduction) providing the service.'\n                      )\n                      .optional(),\n                    location: z\n                      .object({\n                        _id: z\n                          .string()\n                          .describe(\n                            'Business location ID. Available only for locations that are business locations,\\nmeaning the `location_type` is `\"OWNER_BUSINESS\"`.'\n                          )\n                          .regex(\n                            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-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('Location name.')\n                          .optional()\n                          .nullable(),\n                        formattedAddress: z\n                          .string()\n                          .describe('The full address of this location.')\n                          .optional()\n                          .nullable(),\n                        formattedAddressTranslated: z\n                          .string()\n                          .describe(\n                            'The full translated address of this location.'\n                          )\n                          .max(512)\n                          .optional()\n                          .nullable(),\n                        locationType: z\n                          .enum([\n                            'UNDEFINED',\n                            'OWNER_BUSINESS',\n                            'OWNER_CUSTOM',\n                            'CUSTOM',\n                          ])\n                          .describe('Location type.')\n                          .optional(),\n                      })\n                      .describe('Location where the session takes place.')\n                      .optional(),\n                    resourceSelections: z\n                      .array(\n                        z.object({\n                          resourceTypeId: z\n                            .string()\n                            .describe(\n                              'ID of the [resource type](https://dev.wix.com/docs/api-reference/business-solutions/bookings/resources/resource-types-v2/introduction).'\n                            )\n                            .regex(\n                              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                              'Must be a valid GUID'\n                            )\n                            .optional()\n                            .nullable(),\n                          selectionMethod: z\n                            .enum([\n                              'SPECIFIC_RESOURCE',\n                              'ANY_RESOURCE',\n                              'NO_SELECTION',\n                            ])\n                            .optional(),\n                        })\n                      )\n                      .max(3)\n                      .optional(),\n                  })\n                  .describe(\n                    '[Booked slot](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings-and-time-slots/time-slots/availability-calendar/query-availability).\\n\\nSpecify `slot` when creating bookings for:\\n- __Appointment-based services__: Individual sessions with service providers (consultations, treatments).\\nWix Bookings creates a new session when the booking is confirmed.\\n- __Class services__: Group sessions at specific times (fitness classes, workshops).\\nWix Bookings links the booking to an existing scheduled session.\\n\\nFor course services, specify `schedule` instead of `slot`.'\n                  ),\n              }),\n              z.object({\n                slot: z.never().optional(),\n                schedule: z\n                  .object({\n                    scheduleId: z\n                      .string()\n                      .describe(\n                        '[Schedule ID](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction).'\n                      )\n                      .optional(),\n                    serviceId: z\n                      .string()\n                      .describe('Booked 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                    location: z\n                      .object({\n                        _id: z\n                          .string()\n                          .describe(\n                            'Business location ID. Available only for locations that are business locations,\\nmeaning the `location_type` is `\"OWNER_BUSINESS\"`.'\n                          )\n                          .regex(\n                            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-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('Location name.')\n                          .optional()\n                          .nullable(),\n                        formattedAddress: z\n                          .string()\n                          .describe('The full address of this location.')\n                          .optional()\n                          .nullable(),\n                        formattedAddressTranslated: z\n                          .string()\n                          .describe(\n                            'The full translated address of this location.'\n                          )\n                          .max(512)\n                          .optional()\n                          .nullable(),\n                        locationType: z\n                          .enum([\n                            'UNDEFINED',\n                            'OWNER_BUSINESS',\n                            'OWNER_CUSTOM',\n                            'CUSTOM',\n                          ])\n                          .describe('Location type.')\n                          .optional(),\n                      })\n                      .describe(\n                        \"[Location](https://dev.wix.com/docs/rest/business-management/locations/introduction) where the schedule's sessions take place.\"\n                      )\n                      .optional(),\n                    timezone: z\n                      .string()\n                      .describe(\n                        'Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database).\\nFor example, `America/New_York` or `UTC`. This is the time zone in which the schedule was shown to the customer at the time of booking. Wix Bookings ensures that the schedule is always displayed in this same time zone to the customer, including when they view or edit their booking in the future.'\n                      )\n                      .optional()\n                      .nullable(),\n                    firstSessionStart: z\n                      .string()\n                      .describe(\n                        'Start time of the first session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`.'\n                      )\n                      .optional()\n                      .nullable(),\n                    lastSessionEnd: z\n                      .string()\n                      .describe(\n                        'End time of the last session related to the booking in `YYYY-MM-DDThh:mm:ss`, `YYYY-MM-DDThh:mm:ss:SSS`, or `YYYY-MM-DDThh:mm:ss:SSSZZ` [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601). For example, `2026-01-30T13:30:00`, `2026-01-30T13:30:00:000`, or `2026-01-30T13:30:00:000-05:00`.'\n                      )\n                      .optional()\n                      .nullable(),\n                  })\n                  .describe(\n                    '[Booked schedule](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction).\\n\\nSpecify `schedule` when creating bookings for:\\n- __Course services__: Multi-session offerings spanning weeks or months (educational courses, training programs).\\nWix Bookings enrolls participants in all sessions defined by the course schedule.'\n                  ),\n              }),\n            ])\n          )\n          .describe(\n            'An object describing the bookable entity - either a specific time slot or a recurring schedule.\\n\\nThe structure depends on the type of service being booked:\\n\\n__For appointment services__: Use `slot` to book a specific time slot with a\\nservice provider. Appointments are typically one-time sessions at a specific date and time.\\n\\n__For class services__: Use `slot` to book a specific class session. Classes\\nare individual sessions that can have multiple participants.\\n\\n__For course services__: Use `schedule` to book an entire course consisting of\\nmultiple sessions over time. Courses are recurring, multi-session offerings.\\n\\nChoose the appropriate field based on your service type and booking requirements.'\n          )\n          .optional(),\n        contactDetails: z\n          .object({\n            contactId: z\n              .string()\n              .describe('Contact 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            firstName: z\n              .string()\n              .describe(\n                \"Contact's first name. When populated from a standard booking form, this\\nproperty corresponds to the `name` field.\"\n              )\n              .optional()\n              .nullable(),\n            lastName: z\n              .string()\n              .describe(\"Contact's last name.\")\n              .optional()\n              .nullable(),\n            email: z\n              .string()\n              .describe(\n                \"Contact's email. If no [contact](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/contact-v4/contact-object)\\nwith this email exist, a new contact is created.\\nUsed to validate coupon usage limitations per contact. If not specified,\\nthe coupon usage limitation will not be enforced. (Coupon usage limitation\\nvalidation is not supported yet).\"\n              )\n              .email()\n              .optional()\n              .nullable(),\n            phone: z\n              .string()\n              .describe(\"Contact's phone number.\")\n              .optional()\n              .nullable(),\n            fullAddress: z\n              .intersection(\n                z.object({\n                  country: z\n                    .string()\n                    .describe('Country code.')\n                    .optional()\n                    .nullable(),\n                  subdivision: z\n                    .string()\n                    .describe(\n                      'Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).'\n                    )\n                    .optional()\n                    .nullable(),\n                  city: z.string().describe('City name.').optional().nullable(),\n                  postalCode: z\n                    .string()\n                    .describe('Zip/postal code.')\n                    .optional()\n                    .nullable(),\n                  addressLine2: z\n                    .string()\n                    .describe(\n                      'Free text providing more detailed address info. Usually contains Apt, Suite, and Floor.'\n                    )\n                    .optional()\n                    .nullable(),\n                  formattedAddress: z\n                    .string()\n                    .describe(\n                      'A string containing the full address of this location.'\n                    )\n                    .optional()\n                    .nullable(),\n                  hint: z\n                    .string()\n                    .describe('Free text to help find the address.')\n                    .optional()\n                    .nullable(),\n                  geocode: z\n                    .object({\n                      latitude: z\n                        .number()\n                        .describe('Address latitude.')\n                        .optional()\n                        .nullable(),\n                      longitude: z\n                        .number()\n                        .describe('Address longitude.')\n                        .optional()\n                        .nullable(),\n                    })\n                    .describe('Coordinates of the physical address.')\n                    .optional(),\n                  countryFullname: z\n                    .string()\n                    .describe('Country full name.')\n                    .optional()\n                    .nullable(),\n                  subdivisions: z\n                    .array(\n                      z.object({\n                        code: z\n                          .string()\n                          .describe(\n                            'Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).'\n                          )\n                          .optional(),\n                        name: z\n                          .string()\n                          .describe('Subdivision full name.')\n                          .optional(),\n                      })\n                    )\n                    .optional(),\n                }),\n                z.xor([\n                  z.object({\n                    streetAddress: z.never().optional(),\n                    addressLine: z.never().optional(),\n                  }),\n                  z.object({\n                    addressLine: z.never().optional(),\n                    streetAddress: z\n                      .object({\n                        number: z\n                          .string()\n                          .describe('Street number.')\n                          .optional(),\n                        name: z.string().describe('Street name.').optional(),\n                        apt: z\n                          .string()\n                          .describe('Apartment number.')\n                          .optional(),\n                      })\n                      .describe('Street name, number and apartment number.'),\n                  }),\n                  z.object({\n                    streetAddress: z.never().optional(),\n                    addressLine: z\n                      .string()\n                      .describe(\n                        'Main address line, usually street and number, as free text.'\n                      ),\n                  }),\n                ])\n              )\n              .describe(\"Contact's full address.\")\n              .optional(),\n            timeZone: z\n              .string()\n              .describe(\"Contact's time zone.\")\n              .optional()\n              .nullable(),\n            countryCode: z\n              .string()\n              .describe(\n                \"Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\nformat.\"\n              )\n              .optional()\n              .nullable(),\n          })\n          .describe(\n            'Contact details of the site visitor or [member](https://dev.wix.com/docs/api-reference/crm/members-contacts/members/members/introduction)\\nmaking the booking.'\n          )\n          .optional(),\n        additionalFields: z\n          .array(\n            z.object({\n              _id: z\n                .string()\n                .describe('ID of the form field as defined in the 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              value: z\n                .string()\n                .describe('Value that was submitted for this field.')\n                .optional()\n                .nullable(),\n              label: z\n                .string()\n                .describe(\"Form field's label at the time of submission.\")\n                .optional()\n                .nullable(),\n              valueType: z\n                .enum(['SHORT_TEXT', 'LONG_TEXT', 'CHECK_BOX'])\n                .optional(),\n            })\n          )\n          .optional(),\n        status: z\n          .enum([\n            'CREATED',\n            'CONFIRMED',\n            'CANCELED',\n            'PENDING',\n            'DECLINED',\n            'WAITING_LIST',\n          ])\n          .optional(),\n        paymentStatus: z\n          .enum([\n            'UNDEFINED',\n            'NOT_PAID',\n            'PAID',\n            'PARTIALLY_PAID',\n            'REFUNDED',\n            'EXEMPT',\n          ])\n          .optional(),\n        selectedPaymentOption: z\n          .enum([\n            'UNDEFINED',\n            'OFFLINE',\n            'ONLINE',\n            'MEMBERSHIP',\n            'MEMBERSHIP_OFFLINE',\n          ])\n          .optional(),\n        _createdDate: z\n          .date()\n          .describe(\n            'Date and time the booking was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n          )\n          .optional()\n          .nullable(),\n        externalUserId: z\n          .string()\n          .describe('External user ID that you can provide.')\n          .optional()\n          .nullable(),\n        revision: z\n          .string()\n          .regex(/^-?\\d+$/, 'Must be a valid Int64 string')\n          .describe(\n            'Revision number to be used when updating, rescheduling, or cancelling the booking.\\nIncrements by 1 each time the booking is updated, rescheduled, or canceled. To prevent conflicting changes, the current revision must be specified when updating the booking.'\n          )\n          .optional()\n          .nullable(),\n        createdBy: z\n          .intersection(\n            z.object({\n              contactId: z\n                .string()\n                .describe(\n                  \"ID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system.\"\n                )\n                .regex(\n                  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                  'Must be a valid GUID'\n                )\n                .optional()\n                .nullable(),\n            }),\n            z.xor([\n              z.object({\n                anonymousVisitorId: z.never().optional(),\n                memberId: z.never().optional(),\n                wixUserId: z.never().optional(),\n                appId: z.never().optional(),\n              }),\n              z.object({\n                memberId: z.never().optional(),\n                wixUserId: z.never().optional(),\n                appId: z.never().optional(),\n                anonymousVisitorId: z\n                  .string()\n                  .describe(\n                    'ID of a site visitor that has not logged in to the site.'\n                  )\n                  .regex(\n                    /^[0-9a-fA-F]{8}-[0-9a-fA-F]{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              z.object({\n                anonymousVisitorId: z.never().optional(),\n                wixUserId: z.never().optional(),\n                appId: z.never().optional(),\n                memberId: z\n                  .string()\n                  .describe(\n                    'ID of a site visitor that has logged in to the site.'\n                  )\n                  .regex(\n                    /^[0-9a-fA-F]{8}-[0-9a-fA-F]{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              z.object({\n                anonymousVisitorId: z.never().optional(),\n                memberId: z.never().optional(),\n                appId: z.never().optional(),\n                wixUserId: z\n                  .string()\n                  .describe('ID of a Wix user (site owner, contributor, etc.).')\n                  .regex(\n                    /^[0-9a-fA-F]{8}-[0-9a-fA-F]{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              z.object({\n                anonymousVisitorId: z.never().optional(),\n                memberId: z.never().optional(),\n                wixUserId: z.never().optional(),\n                appId: z\n                  .string()\n                  .describe('ID of an app.')\n                  .regex(\n                    /^[0-9a-fA-F]{8}-[0-9a-fA-F]{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            ])\n          )\n          .describe(\n            'ID of the creator of the booking.\\nIf `appId` and another ID are present, the other ID takes precedence.'\n          )\n          .optional(),\n        startDate: z\n          .date()\n          .describe(\n            'The start date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format.\\nFor a slot, this is the start date of the slot. For a schedule, this is the start date of the first session.'\n          )\n          .optional()\n          .nullable(),\n        endDate: z\n          .date()\n          .describe(\n            'The end date of the booking in `YYYY-MM-DDThh:mm:ss.sssZ` format.\\nFor a slot, this is the end date of the slot. For a schedule, this is the end date of the last session.'\n          )\n          .optional()\n          .nullable(),\n        _updatedDate: z\n          .date()\n          .describe(\n            'Date and time the booking was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.'\n          )\n          .optional()\n          .nullable(),\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            'Custom field data for this object.\\nExtended fields must be configured in the app dashboard before they can be accessed with API calls.'\n          )\n          .optional(),\n        doubleBooked: z\n          .boolean()\n          .describe(\n            'Whether this booking overlaps with another confirmed booking. Returned\\nonly if set to `true`.'\n          )\n          .optional()\n          .nullable(),\n        formSubmissionId: z\n          .string()\n          .describe(\n            'ID of the [form submission](https://dev.wix.com/docs/rest/crm/forms/form-submissions/introduction)\\nassociated with this booking.'\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        formId: z\n          .string()\n          .describe(\n            \"ID of the [form](https://dev.wix.com/docs/rest/crm/forms/form-schemas/form-object)\\nassociated with this booking. The value depends on how the\\nbooking was created:\\n- For bookings created with Create Booking or Bulk Create Booking, `formId`\\nis identical to ID of the booking form that's associated with the relevant\\nservice.\\n- For bookings created via Create Multi Service Booking, `formId` is set to\\n`00000000-0000-0000-0000-000000000000` (the default booking form ID).\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        bookedAddOns: z\n          .array(\n            z.object({\n              _id: z\n                .string()\n                .describe('The 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              groupId: z\n                .string()\n                .describe('The ID of 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                .optional(),\n              durationInMinutes: z\n                .number()\n                .int()\n                .describe(\n                  'The add-on duration in minutes at the time of booking.\\nPopulated for duration-based add-ons.'\n                )\n                .min(1)\n                .max(1440)\n                .optional()\n                .nullable(),\n              quantity: z\n                .number()\n                .int()\n                .describe(\n                  'The quantity of booked add-ons.\\nFor duration-based add-ons, `quantity` is not applicable.\\nIf `quantity` is provided as `1` for a duration-based add-on, it will be accepted but the value will be cleared.\\nIf any other value is provided, an `INVALID_ARGUMENT` error will be returned with the message: \"Invalid AddOn details: either duration or quantity must be set correctly\".'\n                )\n                .min(1)\n                .max(1000)\n                .optional()\n                .nullable(),\n              name: z\n                .string()\n                .describe('Add-on `name` at the time of booking.')\n                .max(100)\n                .optional()\n                .nullable(),\n              nameTranslated: z\n                .string()\n                .describe(\n                  'Add-on name translated to the language the customer used during booking.'\n                )\n                .max(100)\n                .optional()\n                .nullable(),\n            })\n          )\n          .max(21)\n          .optional(),\n        appId: z\n          .string()\n          .describe(\n            'ID of the app that\\'s associated with the booking.\\nInherited from the `appId` of the service associated with the booking.\\nBookings are displayed in Wix Bookings only if they are associated with the Wix Bookings app ID or have no associated app ID.\\nFor bookings 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 booking. This field is used for analytics, auditing, and tracking creation sources.\\nThis read-only field is automatically populated during booking creation by checking these sources in order:\\n1. The caller's App ID from the request identity context (external app or server identity).\\n2. The booking's `appId` field (inherited from the service's `appId`).\\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        depositSelected: z\n          .boolean()\n          .describe(\n            'Whether the customer chooses to pay only the deposit amount upfront.\\n\\n- `true`: The customer pays only the deposit amount upfront.\\n- `false`: The customer pays the full price upfront.\\n\\nUsed only when `selectedPaymentOption` is `ONLINE` and the [service](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) has a deposit amount set.\\n\\nWhen the service supports deposit payments and `fullUpfrontPaymentAllowed` is `false`, this field must be `true`.\\nWhen the service supports deposit payments and `fullUpfrontPaymentAllowed` is `true`, this field can be `true` or `false`.'\n          )\n          .optional()\n          .nullable(),\n      }),\n      z.xor([\n        z.object({\n          totalParticipants: z.never().optional(),\n          participantsChoices: z.never().optional(),\n        }),\n        z.object({\n          participantsChoices: z.never().optional(),\n          totalParticipants: z\n            .number()\n            .int()\n            .describe(\n              \"Total number of participants.\\nWhen creating a booking, use this field only if the relevant service has fixed pricing and doesn't offer [variants and options](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction).\"\n            )\n            .min(1),\n        }),\n        z.object({\n          totalParticipants: z.never().optional(),\n          participantsChoices: z\n            .object({\n              serviceChoices: z\n                .array(\n                  z.object({\n                    numberOfParticipants: z\n                      .number()\n                      .int()\n                      .describe(\n                        'Number of participants for this [variant](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction).'\n                      )\n                      .min(1)\n                      .optional()\n                      .nullable(),\n                    choices: z\n                      .array(\n                        z.intersection(\n                          z.object({\n                            optionId: z\n                              .string()\n                              .describe(\n                                'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                              )\n                              .regex(\n                                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                          z.xor([\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.never().optional(),\n                            }),\n                            z.object({\n                              duration: z.never().optional(),\n                              custom: z\n                                .string()\n                                .describe(\n                                  'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                                ),\n                            }),\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.object({\n                                minutes: z\n                                  .number()\n                                  .int()\n                                  .describe(\n                                    'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                                  )\n                                  .min(1)\n                                  .max(44639)\n                                  .optional(),\n                                name: z\n                                  .string()\n                                  .describe(\n                                    'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                                  )\n                                  .max(255)\n                                  .optional()\n                                  .nullable(),\n                              }),\n                            }),\n                          ])\n                        )\n                      )\n                      .max(5)\n                      .optional(),\n                  })\n                )\n                .min(1)\n                .max(20)\n                .optional(),\n            })\n            .describe(\n              'Information about the booked service choices and participant count for each choice.\\nWhen creating a booking, use this field only if the booking includes multiple [service variants](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction).\\n\\nFor example, use this for a spa package booking that includes different service levels:\\n- 2 participants chose \"Standard Package\".\\n- 1 participant chose \"VIP Package\".'\n            ),\n        }),\n      ])\n    )\n    .describe(\n      'Existing [booking](https://dev.wix.com/docs/rest/business-solutions/bookings/bookings/bookings-writer-v2/introduction) to calculate the base price for.\\nMust include `bookedEntity` details and participant information.'\n    ),\n});\nexport const CalculatePriceResponse = z.object({\n  priceInfo: z\n    .intersection(\n      z.object({\n        bookingLineItems: z\n          .array(\n            z.object({\n              serviceId: z\n                .string()\n                .describe(\n                  \"[Service ID](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/introduction).\\n\\nRequired parameter in:\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for all service types. All line items must have the same service ID.\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) when using Wix Bookings' default pricing logic. Optional in Calculate Price when using a Pricing Service Provider Plugin.\"\n                )\n                .regex(\n                  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                  'Must be a valid GUID'\n                )\n                .optional()\n                .nullable(),\n              resourceId: z\n                .string()\n                .describe(\n                  '[Resource ID](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/introduction).\\n\\nRequired parameter in:\\n- [Calculate Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/calculate-price) for all service types ([service types](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types)).\\n- [Preview Price](https://dev.wix.com/docs/api-reference/business-solutions/bookings/pricing/pricing-api/preview-price) for appointment-based services and classes. Optional in Preview Price for courses.'\n                )\n                .regex(\n                  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                  'Must be a valid GUID'\n                )\n                .optional()\n                .nullable(),\n              choices: z\n                .array(\n                  z.intersection(\n                    z.object({\n                      optionId: z\n                        .string()\n                        .describe(\n                          'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                        )\n                        .regex(\n                          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                    z.xor([\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.never().optional(),\n                      }),\n                      z.object({\n                        duration: z.never().optional(),\n                        custom: z\n                          .string()\n                          .describe(\n                            'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                          ),\n                      }),\n                      z.object({\n                        custom: z.never().optional(),\n                        duration: z.object({\n                          minutes: z\n                            .number()\n                            .int()\n                            .describe(\n                              'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                            )\n                            .min(1)\n                            .max(44639)\n                            .optional(),\n                          name: z\n                            .string()\n                            .describe(\n                              'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                            )\n                            .max(255)\n                            .optional()\n                            .nullable(),\n                        }),\n                      }),\n                    ])\n                  )\n                )\n                .optional(),\n              numberOfParticipants: z\n                .number()\n                .int()\n                .describe(\n                  '__Deprecated.__ Use `serviceChoices.numberOfParticipants` instead.\\n\\nNumber of participants for the line item.'\n                )\n                .min(1)\n                .optional()\n                .nullable(),\n              pricePerParticipant: z\n                .number()\n                .describe(\n                  '__Deprecated.__ Use `serviceChoices.pricePerParticipant` instead.\\n\\nPrice per participant for the line item.'\n                )\n                .optional()\n                .nullable(),\n              serviceChoices: z\n                .array(\n                  z.object({\n                    numberOfParticipants: z\n                      .number()\n                      .int()\n                      .describe(\n                        'Number of participants for this service variant.'\n                      )\n                      .min(1)\n                      .optional()\n                      .nullable(),\n                    choices: z\n                      .array(\n                        z.intersection(\n                          z.object({\n                            optionId: z\n                              .string()\n                              .describe(\n                                'ID of the corresponding option for the choice. For example, the choice `child`\\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\\nfor the `ageGroup` option.'\n                              )\n                              .regex(\n                                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-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                          z.xor([\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.never().optional(),\n                            }),\n                            z.object({\n                              duration: z.never().optional(),\n                              custom: z\n                                .string()\n                                .describe(\n                                  'Value for one of the choices in the [`CustomServiceOption.choices`](https://example.com) list.\\nChoices are specific values for an option the customer can choose to book. For example,\\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\\nEach choice may have a different price.'\n                                ),\n                            }),\n                            z.object({\n                              custom: z.never().optional(),\n                              duration: z.object({\n                                minutes: z\n                                  .number()\n                                  .int()\n                                  .describe(\n                                    'Duration of the service in minutes.\\nMin: 1 minute, Max: 30 days, 23 hours, and 59 minutes'\n                                  )\n                                  .min(1)\n                                  .max(44639)\n                                  .optional(),\n                                name: z\n                                  .string()\n                                  .describe(\n                                    'Name of the duration option.\\nDefaults to the formatted duration e.g. \"1 hour, 30 minutes\".'\n                                  )\n                                  .max(255)\n                                  .optional()\n                                  .nullable(),\n                              }),\n                            }),\n                          ])\n                        )\n                      )\n                      .max(5)\n                      .optional(),\n                    pricePerParticipant: z\n                      .number()\n                      .describe(\n                        'Price per participant for this service variant.'\n                      )\n                      .optional()\n                      .nullable(),\n                  })\n                )\n                .max(20)\n                .optional(),\n            })\n          )\n          .max(20)\n          .optional(),\n        deposit: z\n          .number()\n          .describe(\n            \"Total deposit the customer must pay when booking the service.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.options.deposit` is set to `true`.\"\n          )\n          .optional()\n          .nullable(),\n      }),\n      z.xor([\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n        }),\n        z.object({\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n          calculatedPrice: z\n            .number()\n            .describe(\n              \"Calculated total price. Available if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `FIXED`, `VARIED`, or `NO_FEE`.\"\n            ),\n        }),\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescriptionInfo: z.never().optional(),\n          priceDescription: z\n            .string()\n            .describe(\n              \"Description of the total price.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `CUSTOM`.\"\n            ),\n        }),\n        z.object({\n          calculatedPrice: z.never().optional(),\n          priceDescription: z.never().optional(),\n          priceDescriptionInfo: z\n            .object({\n              original: z\n                .string()\n                .describe(\n                  \"Price description in the site's main language.\\nRefer to the [Site Properties API](https://dev.wix.com/docs/api-reference/business-management/site-properties/properties/introduction) for more details.\"\n                )\n                .max(50)\n                .optional(),\n              translated: z\n                .string()\n                .describe(\n                  'Translated price description.\\nAvailable if the booking was made in a secondary language.'\n                )\n                .max(50)\n                .optional()\n                .nullable(),\n            })\n            .describe(\n              \"Description of the total price.\\nAvailable if the [service's](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction) `payment.rateType` is `CUSTOM`.\"\n            ),\n        }),\n      ])\n    )\n    .describe(\n      \"Information about each line item's base price and the total base price.\"\n    )\n    .optional(),\n});\n"],"mappings":"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","names":[]}