import {z} from 'zod' export type CreateApiV1GroupInvoicesGroupInvoiceIdEmailArgs = {group_invoice_id: string}; export type CreateApiV1GroupInvoicesGroupInvoiceIdEmailOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const createApiV1GroupInvoicesGroupInvoiceIdEmailResponse = z.object({is_invoice_created: z.boolean().optional(), group_invoice: z.object({Id: z.string().optional(), name: z.string().optional(), host_id: z.string().optional(), payment_made_by: z.string().optional(), Invoices: z.array(z.object({Id: z.string().optional(), InvoiceNumber: z.string().optional(), GroupInvoiceId: z.string().optional(), group_name: z.string().optional(), ReceiptNumber: z.string().optional(), AppointmentGroupId: z.string().optional(), ReservationId: z.string().optional(), IsRebooking: z.boolean().optional(), Notes: z.string().optional(), GuestId: z.string().optional(), Guest: z.object({Id: z.string().optional(), Code: z.string().optional(), FirstName: z.string().optional(), MiddleName: z.string().optional(), LastName: z.string().optional(), Email: z.string().optional(), MobileNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), HomePhone: z.string().optional(), HomePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), WorkPhone: z.string().optional(), WorkPhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), DateOfBirth: z.string().optional(), AnniversaryDate: z.string().optional(), Address1: z.string().optional(), Address2: z.string().optional(), City: z.string().optional(), PostalCode: z.string().optional(), State: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), ShortName: z.string().optional()}).optional(), Country: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), Nationality: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), ReferralSource: z.object({Id: z.string().optional(), OrgReferralId: z.string().optional(), Name: z.string().optional()}).optional(), ReferredGuestId: z.string().optional(), ReceiveTransactionalSms: z.boolean().optional(), ReceiveMarketingEmail: z.boolean().optional(), ReceiveTransactionalEmail: z.boolean().optional(), ReceiveMarketingSms: z.boolean().optional(), CreationDate: z.string().optional(), LastUpdated: z.string().optional(), MergeIntoCode: z.string().optional(), MergeIntoGuestId: z.string().optional(), CenterId: z.string().optional(), CenterCode: z.string().optional(), CenterName: z.string().optional(), GuestIndicator: z.string().optional(), IsMember: z.number().int().optional(), DOB_IncompleteYear: z.string().optional(), Password: z.string().optional(), UserName: z.string().optional(), FacebookUserId: z.string().optional(), SocialFaceBookUserId: z.string().optional(), SocialGoogleUserId: z.string().optional(), hasZenotiCreds: z.boolean().optional(), OldPassword: z.string().optional(), OptInForLoyaltyProgram: z.boolean().optional(), FormDetails: z.array(z.object({AppointmentId: z.string().optional(), FormId: z.string().optional(), ServiceName: z.string().optional(), ServiceDisplayName: z.string().optional(), ServiceId: z.string().optional(), Name: z.string().optional(), Filled: z.boolean().optional(), Submitted: z.boolean().optional(), LastFilledDate: z.string().optional(), FormType: z.number().int().optional(), LastFilledBy: z.string().optional(), LatestVersion: z.string().optional(), FormHistory: z.array(z.object({VersionDate: z.string().optional(), VersionDateString: z.string().optional(), VersionId: z.string().optional(), CreatedBy: z.string().optional(), FormName: z.string().optional(), FormId: z.string().optional()})).optional(), Viewonly: z.boolean().optional(), IsFormLocked: z.boolean().optional(), ExpiryDate: z.string().optional(), IsEditable: z.boolean().optional(), IsExpired: z.boolean().optional(), OwnerId: z.string().optional(), DisplayOrder: z.number().int().optional(), IsServiceForm: z.boolean().optional(), SourceAppointmentDate: z.string().optional(), Permissions: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional(), FormFilledStatus: z.number().int().optional(), IsActive: z.boolean().optional(), SendLinkInNotifications: z.boolean().optional()})).optional(), IsMinors: z.boolean().optional(), LpTierInfo: z.string().optional(), GuestIndicatorValue: z.object({HighSpender: z.boolean().optional(), Member: z.number().int().optional(), LowFeedback: z.boolean().optional(), RegularGuest: z.boolean().optional(), FirstTimer: z.boolean().optional(), ReturningCustomer: z.boolean().optional(), NoShow: z.boolean().optional(), HasActivePackages: z.boolean().optional(), HasProfileAlerts: z.boolean().optional(), OtherCenterGuest: z.boolean().optional(), HasCTA: z.boolean().optional(), Dues: z.boolean().optional(), CardOnFile: z.boolean().optional(), AutoPayEnabled: z.boolean().optional()}).optional(), IsMemberbershipAddOnUser: z.number().int().optional(), HasActiveMems: z.number().int().optional(), ReceiveLpStmt: z.boolean().optional(), GenderEnumType: z.number().int().optional(), ReferralCode: z.string().optional(), EnableAutoPay: z.boolean().optional(), GuestCustomDataFilled: z.string().optional()}).optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SaleDate: z.string().optional(), FutureRecurringBillDate: z.string().optional(), guest_checkin_time: z.string().optional(), LinkedInvoiceId: z.string().optional(), Status: z.number().int().optional(), InvoiceServices: z.array(z.object({AppointmentService: z.object({AppointmentId: z.string().optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), UIItemIdentifier: z.string().optional(), CartItemId: z.string().optional(), AppointmentSegmentId: z.string().optional(), PackageId: z.string().optional(), Package: z.object({Id: z.string().optional(), Name: z.string().optional(), Description: z.string().optional(), Code: z.string().optional(), HasBundledProducts: z.boolean().optional(), Duration: z.number().int().optional(), BundledProductPriceCheck: z.number().int().optional(), BundledProductPricePercentage: z.number().int().optional(), PackagePriceWithOutTax: z.number().int().optional(), Type: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), PackageCostIncBundledProducts: z.boolean().optional(), Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional(), Items: z.array(z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()})).optional(), CanBook: z.boolean().optional(), PackageDisplayName: z.string().optional(), PackageDisplayPrice: z.string().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), TermsandConditions: z.string().optional(), ExpirationDate: z.string().optional(), ExpirationDays: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), RestrictRedemptionToThisCenter: z.number().int().optional(), CenterName: z.string().optional(), PackageCategoryName: z.string().optional(), start_validity_at_first_redemption: z.boolean().optional()}).optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), ReducedTimeGroupId: z.string().optional(), ServiceFormDetails: z.array(z.object({AppointmentId: z.string().optional(), FormId: z.string().optional(), ServiceName: z.string().optional(), ServiceDisplayName: z.string().optional(), ServiceId: z.string().optional(), Name: z.string().optional(), Filled: z.boolean().optional(), Submitted: z.boolean().optional(), LastFilledDate: z.string().optional(), FormType: z.number().int().optional(), LastFilledBy: z.string().optional(), LatestVersion: z.string().optional(), FormHistory: z.array(z.object({VersionDate: z.string().optional(), VersionDateString: z.string().optional(), VersionId: z.string().optional(), CreatedBy: z.string().optional(), FormName: z.string().optional(), FormId: z.string().optional()})).optional(), Viewonly: z.boolean().optional(), IsFormLocked: z.boolean().optional(), ExpiryDate: z.string().optional(), IsEditable: z.boolean().optional(), IsExpired: z.boolean().optional(), OwnerId: z.string().optional(), DisplayOrder: z.number().int().optional(), IsServiceForm: z.boolean().optional(), SourceAppointmentDate: z.string().optional(), Permissions: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional(), FormFilledStatus: z.number().int().optional(), IsActive: z.boolean().optional(), SendLinkInNotifications: z.boolean().optional()})).optional(), RequestedTherapistGender: z.number().int().optional(), StartTime: z.string().optional(), EndTime: z.string().optional(), RequestedDuration: z.number().int().optional(), NonReducedDuration: z.number().int().optional(), StartTimeInCenter: z.string().optional(), EndTimeInCenter: z.string().optional(), Room: z.object({Id: z.string().optional(), Name: z.string().optional()}).optional(), Lock: z.boolean().optional(), Equipment: z.object({Id: z.string().optional(), Name: z.string().optional()}).optional(), Status: z.number().int().optional(), RequestedTherapist: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), SaleBy: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SCD: z.string().optional(), ActualStartTime: z.string().optional(), CompletedTime: z.string().optional(), Progress: z.number().int().optional(), ParentAppointmentId: z.string().optional(), ServiceCustomData: z.object({Permission: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional()}).optional(), ItemActions: z.string().optional(), EquivalenceFactor: z.number().optional(), EquivalentName: z.string().optional(), IsMembershipApplied: z.boolean().optional(), IsAddOn: z.boolean().optional(), AddonAppointmentId: z.string().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional(), CanModifyTherapist: z.boolean().optional(), CoupleGroupNo: z.number().int().optional(), CoupleGroupId: z.string().optional(), OrderNo: z.number().int().optional(), OpenSlots: z.array(z.object({StartTimeInCenter: z.string().optional(), EndTimeInCenter: z.string().optional(), Therapists: z.array(z.object({TherapistId: z.string().optional(), EndTime: z.string().optional(), Rooms: z.array(z.object({RoomId: z.string().optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional(), Warnings: z.array(z.object({Type: z.number().int().optional(), Message: z.string().optional(), GuestId: z.string().optional(), TherapistId: z.string().optional(), ServiceId: z.string().optional(), RoomId: z.string().optional(), EquipmentId: z.string().optional()})).optional()})).optional(), Rooms: z.array(z.object({RoomId: z.string().optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Warnings: z.array(z.object({Type: z.number().int().optional(), Message: z.string().optional(), GuestId: z.string().optional(), TherapistId: z.string().optional(), ServiceId: z.string().optional(), RoomId: z.string().optional(), EquipmentId: z.string().optional()})).optional(), FillOpenSlots: z.boolean().optional(), AssignDefaultSlot: z.boolean().optional(), AssignedSlotTherapistIds: z.array(z.string()).optional(), AssignedSlotRoomIds: z.array(z.string()).optional(), AssignedSlotRooms: z.array(z.object({Id: z.string().optional(), Name: z.string().optional()})).optional(), AssignedSlotEquipmentIds: z.array(z.string()).optional(), AssignedSlotEquipments: z.array(z.object({Id: z.string().optional(), Name: z.string().optional()})).optional(), ResetIfTherapistCanNotDoService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), PkgGroupNo: z.number().int().optional(), DayPackageService: z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()}).optional(), ShowInCalendar: z.number().int().optional(), FormId: z.string().optional(), hasServiceForm: z.boolean().optional(), PreferredTime: z.string().optional(), AppointmentSource: z.number().int().optional(), RemoveBuddyServiceSegments: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), ServiceName: z.string().optional()})).optional(), AppointmentStatus: z.number().int().optional(), ServiceCustomDataEntered: z.boolean().optional(), ProductConsumptionEntered: z.boolean().optional(), disable_tip: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoiceProducts: z.array(z.object({AppointmentProduct: z.object({Product: z.object({Id: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CategoryId: z.string().optional(), IsRetail: z.boolean().optional(), IsConsumable: z.boolean().optional(), Url: z.string().optional(), Description: z.string().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Employee: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), IsMembershipApplied: z.boolean().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoiceMemberships: z.array(z.object({AppointmentMembership: z.object({Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), Employee: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), IsMembershipApplied: z.boolean().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional(), MembershipBillDate: z.string().optional(), RecurringMembership: z.object({Days: z.number().int().optional(), SaleStartDate: z.string().optional(), SaleEndDate: z.string().optional(), CreditAmount: z.number().optional(), CreditAmountExpiration: z.boolean().optional(), NumGuests: z.number().int().optional(), Code: z.string().optional(), BusinessUnitId: z.string().optional(), Months: z.number().int().optional(), TermsandConditions: z.string().optional(), Type: z.number().int().optional(), CategoryId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), Signature: z.string().optional(), UserMembershipId: z.string().optional(), AcceptedOn: z.string().optional(), IsTandCAccepted: z.boolean().optional(), PaymentAccountId: z.string().optional(), HasMembershipDigitalForm: z.boolean().optional(), HasFilledMembershipForms: z.boolean().optional(), RecurringPaymentType: z.number().int().optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoiceDayPackages: z.array(z.object({AppointmentDayPackage: z.object({Package: z.object({Id: z.string().optional(), Name: z.string().optional(), Description: z.string().optional(), Code: z.string().optional(), HasBundledProducts: z.boolean().optional(), Duration: z.number().int().optional(), BundledProductPriceCheck: z.number().int().optional(), BundledProductPricePercentage: z.number().int().optional(), PackagePriceWithOutTax: z.number().int().optional(), Type: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), PackageCostIncBundledProducts: z.boolean().optional(), Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional(), Items: z.array(z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()})).optional(), CanBook: z.boolean().optional(), PackageDisplayName: z.string().optional(), PackageDisplayPrice: z.string().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), TermsandConditions: z.string().optional(), ExpirationDate: z.string().optional(), ExpirationDays: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), RestrictRedemptionToThisCenter: z.number().int().optional(), CenterName: z.string().optional(), PackageCategoryName: z.string().optional(), start_validity_at_first_redemption: z.boolean().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), AppointmentService: z.array(z.object({AppointmentId: z.string().optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), UIItemIdentifier: z.string().optional(), CartItemId: z.string().optional(), AppointmentSegmentId: z.string().optional(), PackageId: z.string().optional(), Package: z.object({Id: z.string().optional(), Name: z.string().optional(), Description: z.string().optional(), Code: z.string().optional(), HasBundledProducts: z.boolean().optional(), Duration: z.number().int().optional(), BundledProductPriceCheck: z.number().int().optional(), BundledProductPricePercentage: z.number().int().optional(), PackagePriceWithOutTax: z.number().int().optional(), Type: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), PackageCostIncBundledProducts: z.boolean().optional(), Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional(), Items: z.array(z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()})).optional(), CanBook: z.boolean().optional(), PackageDisplayName: z.string().optional(), PackageDisplayPrice: z.string().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), TermsandConditions: z.string().optional(), ExpirationDate: z.string().optional(), ExpirationDays: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), RestrictRedemptionToThisCenter: z.number().int().optional(), CenterName: z.string().optional(), PackageCategoryName: z.string().optional(), start_validity_at_first_redemption: z.boolean().optional()}).optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), ReducedTimeGroupId: z.string().optional(), ServiceFormDetails: z.array(z.object({AppointmentId: z.string().optional(), FormId: z.string().optional(), ServiceName: z.string().optional(), ServiceDisplayName: z.string().optional(), ServiceId: z.string().optional(), Name: z.string().optional(), Filled: z.boolean().optional(), Submitted: z.boolean().optional(), LastFilledDate: z.string().optional(), FormType: z.number().int().optional(), LastFilledBy: z.string().optional(), LatestVersion: z.string().optional(), FormHistory: z.array(z.object({VersionDate: z.string().optional(), VersionDateString: z.string().optional(), VersionId: z.string().optional(), CreatedBy: z.string().optional(), FormName: z.string().optional(), FormId: z.string().optional()})).optional(), Viewonly: z.boolean().optional(), IsFormLocked: z.boolean().optional(), ExpiryDate: z.string().optional(), IsEditable: z.boolean().optional(), IsExpired: z.boolean().optional(), OwnerId: z.string().optional(), DisplayOrder: z.number().int().optional(), IsServiceForm: z.boolean().optional(), SourceAppointmentDate: z.string().optional(), Permissions: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional(), FormFilledStatus: z.number().int().optional(), IsActive: z.boolean().optional(), SendLinkInNotifications: z.boolean().optional()})).optional(), RequestedTherapistGender: z.number().int().optional(), StartTime: z.string().optional(), EndTime: z.string().optional(), RequestedDuration: z.number().int().optional(), NonReducedDuration: z.number().int().optional(), StartTimeInCenter: z.string().optional(), EndTimeInCenter: z.string().optional(), Room: z.object({Id: z.string().optional(), Name: z.string().optional()}).optional(), Lock: z.boolean().optional(), Equipment: z.object({Id: z.string().optional(), Name: z.string().optional()}).optional(), Status: z.number().int().optional(), RequestedTherapist: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), SaleBy: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SCD: z.string().optional(), ActualStartTime: z.string().optional(), CompletedTime: z.string().optional(), Progress: z.number().int().optional(), ParentAppointmentId: z.string().optional(), ServiceCustomData: z.object({Permission: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional()}).optional(), ItemActions: z.string().optional(), EquivalenceFactor: z.number().optional(), EquivalentName: z.string().optional(), IsMembershipApplied: z.boolean().optional(), IsAddOn: z.boolean().optional(), AddonAppointmentId: z.string().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional(), CanModifyTherapist: z.boolean().optional(), CoupleGroupNo: z.number().int().optional(), CoupleGroupId: z.string().optional(), OrderNo: z.number().int().optional(), OpenSlots: z.array(z.object({StartTimeInCenter: z.string().optional(), EndTimeInCenter: z.string().optional(), Therapists: z.array(z.object({TherapistId: z.string().optional(), EndTime: z.string().optional(), Rooms: z.array(z.object({RoomId: z.string().optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional(), Warnings: z.array(z.object({Type: z.number().int().optional(), Message: z.string().optional(), GuestId: z.string().optional(), TherapistId: z.string().optional(), ServiceId: z.string().optional(), RoomId: z.string().optional(), EquipmentId: z.string().optional()})).optional()})).optional(), Rooms: z.array(z.object({RoomId: z.string().optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Equipments: z.array(z.object({EquipmentId: z.string().optional()})).optional()})).optional(), Warnings: z.array(z.object({Type: z.number().int().optional(), Message: z.string().optional(), GuestId: z.string().optional(), TherapistId: z.string().optional(), ServiceId: z.string().optional(), RoomId: z.string().optional(), EquipmentId: z.string().optional()})).optional(), FillOpenSlots: z.boolean().optional(), AssignDefaultSlot: z.boolean().optional(), AssignedSlotTherapistIds: z.array(z.string()).optional(), AssignedSlotRoomIds: z.array(z.string()).optional(), AssignedSlotRooms: z.array(z.object({Id: z.string().optional(), Name: z.string().optional()})).optional(), AssignedSlotEquipmentIds: z.array(z.string()).optional(), AssignedSlotEquipments: z.array(z.object({Id: z.string().optional(), Name: z.string().optional()})).optional(), ResetIfTherapistCanNotDoService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), PkgGroupNo: z.number().int().optional(), DayPackageService: z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()}).optional(), ShowInCalendar: z.number().int().optional(), FormId: z.string().optional(), hasServiceForm: z.boolean().optional(), PreferredTime: z.string().optional(), AppointmentSource: z.number().int().optional(), RemoveBuddyServiceSegments: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), ServiceName: z.string().optional()})).optional(), AppointmentStatus: z.number().int().optional(), ServiceCustomDataEntered: z.boolean().optional(), ProductConsumptionEntered: z.boolean().optional(), disable_tip: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), IsDiscountApplied: z.boolean().optional(), AppointmentStatus: z.number().int().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoiceSeriesPackages: z.array(z.object({AppointmentSeriesPackage: z.object({Package: z.object({Id: z.string().optional(), Name: z.string().optional(), Description: z.string().optional(), Code: z.string().optional(), HasBundledProducts: z.boolean().optional(), Duration: z.number().int().optional(), BundledProductPriceCheck: z.number().int().optional(), BundledProductPricePercentage: z.number().int().optional(), PackagePriceWithOutTax: z.number().int().optional(), Type: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), PackageCostIncBundledProducts: z.boolean().optional(), Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional(), Items: z.array(z.object({Type: z.number().int().optional(), Id: z.string().optional(), Name: z.string().optional(), Quantity: z.number().int().optional(), Order: z.number().int().optional(), Service: z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()}).optional(), PackageServicePK: z.number().int().optional()})).optional(), CanBook: z.boolean().optional(), PackageDisplayName: z.string().optional(), PackageDisplayPrice: z.string().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), TermsandConditions: z.string().optional(), ExpirationDate: z.string().optional(), ExpirationDays: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), RestrictRedemptionToThisCenter: z.number().int().optional(), CenterName: z.string().optional(), PackageCategoryName: z.string().optional(), start_validity_at_first_redemption: z.boolean().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), PackageUserId: z.string().optional(), Employee: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), IsMembershipApplied: z.boolean().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional(), packages_product_type_item: z.array(z.object({packages_product: z.object({id: z.string().optional(), name: z.string().optional(), packages_product_type: z.number().int().optional(), packages_product_parent_category: z.object({product_category_type: z.number().int().optional(), id: z.string().optional(), name: z.string().optional(), quantity: z.number().int().optional(), price: z.object({currency_id: z.number().int().optional(), sales: z.number().int().optional(), tax: z.number().int().optional(), final: z.number().int().optional()}).optional()}).optional(), price: z.object({currency_id: z.number().int().optional(), sales: z.number().int().optional(), tax: z.number().int().optional(), final: z.number().int().optional()}).optional()}).optional(), quantity: z.number().int().optional(), invoice_item_id: z.string().optional(), employee_id: z.string().optional(), price: z.object({currency_id: z.number().int().optional(), sales: z.number().int().optional(), tax: z.number().int().optional(), final: z.number().int().optional()}).optional(), discount: z.object({discount_id: z.string().optional(), campaign_id: z.string().optional(), coupon_id: z.number().int().optional(), action: z.string().optional(), type: z.number().int().optional(), amount: z.number().int().optional()}).optional()})).optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoiceGiftCards: z.array(z.object({AppointmentGiftCard: z.object({GiftCard: z.object({Id: z.string().optional(), Code: z.string().optional(), Value: z.number().int().optional(), PurchasePrice: z.number().int().optional(), ValidityDays: z.number().int().optional(), IsOneTimeUse: z.boolean().optional(), ExpiryDate: z.string().optional(), Notes: z.string().optional(), GiftTypeId: z.string().optional(), SendEmailToRecipient: z.boolean().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Recipient: z.object({Id: z.string().optional(), Code: z.string().optional(), FirstName: z.string().optional(), MiddleName: z.string().optional(), LastName: z.string().optional(), Email: z.string().optional(), MobileNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), HomePhone: z.string().optional(), HomePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), WorkPhone: z.string().optional(), WorkPhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), DateOfBirth: z.string().optional(), AnniversaryDate: z.string().optional(), Address1: z.string().optional(), Address2: z.string().optional(), City: z.string().optional(), PostalCode: z.string().optional(), State: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), ShortName: z.string().optional()}).optional(), Country: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), Nationality: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), ReferralSource: z.object({Id: z.string().optional(), OrgReferralId: z.string().optional(), Name: z.string().optional()}).optional(), ReferredGuestId: z.string().optional(), ReceiveTransactionalSms: z.boolean().optional(), ReceiveMarketingEmail: z.boolean().optional(), ReceiveTransactionalEmail: z.boolean().optional(), ReceiveMarketingSms: z.boolean().optional(), CreationDate: z.string().optional(), LastUpdated: z.string().optional(), MergeIntoCode: z.string().optional(), MergeIntoGuestId: z.string().optional(), CenterId: z.string().optional(), CenterCode: z.string().optional(), CenterName: z.string().optional(), GuestIndicator: z.string().optional(), IsMember: z.number().int().optional(), DOB_IncompleteYear: z.string().optional(), Password: z.string().optional(), UserName: z.string().optional(), FacebookUserId: z.string().optional(), SocialFaceBookUserId: z.string().optional(), SocialGoogleUserId: z.string().optional(), hasZenotiCreds: z.boolean().optional(), OldPassword: z.string().optional(), OptInForLoyaltyProgram: z.boolean().optional(), FormDetails: z.array(z.object({AppointmentId: z.string().optional(), FormId: z.string().optional(), ServiceName: z.string().optional(), ServiceDisplayName: z.string().optional(), ServiceId: z.string().optional(), Name: z.string().optional(), Filled: z.boolean().optional(), Submitted: z.boolean().optional(), LastFilledDate: z.string().optional(), FormType: z.number().int().optional(), LastFilledBy: z.string().optional(), LatestVersion: z.string().optional(), FormHistory: z.array(z.object({VersionDate: z.string().optional(), VersionDateString: z.string().optional(), VersionId: z.string().optional(), CreatedBy: z.string().optional(), FormName: z.string().optional(), FormId: z.string().optional()})).optional(), Viewonly: z.boolean().optional(), IsFormLocked: z.boolean().optional(), ExpiryDate: z.string().optional(), IsEditable: z.boolean().optional(), IsExpired: z.boolean().optional(), OwnerId: z.string().optional(), DisplayOrder: z.number().int().optional(), IsServiceForm: z.boolean().optional(), SourceAppointmentDate: z.string().optional(), Permissions: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional(), FormFilledStatus: z.number().int().optional(), IsActive: z.boolean().optional(), SendLinkInNotifications: z.boolean().optional()})).optional(), IsMinors: z.boolean().optional(), LpTierInfo: z.string().optional(), GuestIndicatorValue: z.object({HighSpender: z.boolean().optional(), Member: z.number().int().optional(), LowFeedback: z.boolean().optional(), RegularGuest: z.boolean().optional(), FirstTimer: z.boolean().optional(), ReturningCustomer: z.boolean().optional(), NoShow: z.boolean().optional(), HasActivePackages: z.boolean().optional(), HasProfileAlerts: z.boolean().optional(), OtherCenterGuest: z.boolean().optional(), HasCTA: z.boolean().optional(), Dues: z.boolean().optional(), CardOnFile: z.boolean().optional(), AutoPayEnabled: z.boolean().optional()}).optional(), IsMemberbershipAddOnUser: z.number().int().optional(), HasActiveMems: z.number().int().optional(), ReceiveLpStmt: z.boolean().optional(), GenderEnumType: z.number().int().optional(), ReferralCode: z.string().optional(), EnableAutoPay: z.boolean().optional(), GuestCustomDataFilled: z.string().optional()}).optional(), Services: z.object({Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional()}).optional(), RestrictRedemptionToSaleCenter: z.boolean().optional(), ConfirmationMessage: z.string().optional(), GiftCardTemplateId: z.string().optional(), SelectedTemplateId: z.string().optional(), gcPackage: z.array(z.object({PackageId: z.string().optional(), PackageName: z.string().optional(), PackageDesc: z.string().optional(), PackageCode: z.string().optional(), OrganizationId: z.string().optional(), BookingStartDate: z.string().optional(), BookingEndDate: z.string().optional(), AllowGiftCertificates: z.boolean().optional(), PackagePrice: z.number().int().optional(), ComissionPercentage: z.number().optional(), PackageType: z.number().int().optional(), ExpirationDays: z.number().int().optional(), ExpirationDate: z.string().optional(), Void: z.boolean().optional(), PackageVersionId: z.string().optional(), enddate: z.string().optional(), ComissionEligible: z.boolean().optional(), CommissionFactor: z.number().optional(), ShowInCatalog: z.number().int().optional(), VideoURL: z.string().optional(), PackageLength: z.number().int().optional(), PackageDisplayName: z.string().optional(), PackageCatalogPrice: z.string().optional(), Custom: z.boolean().optional(), AllowMembershipRedemption: z.boolean().optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), PackageCategoryId: z.string().optional(), BusinessUnitId: z.string().optional(), IsCustomtemplate: z.boolean().optional(), TemplatePackageVersionId: z.string().optional(), RedemptionFrequencydays: z.number().int().optional(), Visits: z.number().int().optional(), GracePeriod: z.string().optional(), TargetName: z.string().optional(), TargetValue: z.number().optional(), CloseOnTargetCompletion: z.boolean().optional(), PackageOwner: z.string().optional(), InitiallyRecognized: z.number().optional(), sortorder: z.number().int().optional(), PackageValidityModelId: z.string().optional(), Active: z.boolean().optional(), ServiceFrequencyScalingFactor: z.number().optional(), StartValidityAtFirstRedemption: z.boolean().optional(), EnablePriceManualOverride: z.boolean().optional(), TermsandConditions: z.string().optional(), TargetType: z.number().int().optional(), PackageFreezeCount: z.number().int().optional(), AllowCancellationFee: z.boolean().optional(), AllowNoshowFee: z.boolean().optional(), CommissionType: z.number().int().optional(), FlatCommissionValue: z.number().optional(), BookingStartTime: z.string().optional(), BookingEndTime: z.string().optional(), PackageInternalCost: z.number().int().optional(), MinPartialAmount: z.number().int().optional(), IncludeBundleProductPrice: z.boolean().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), NumOfServicesToBeSelected: z.number().int().optional(), WebstorePageTitle: z.string().optional(), MetaKeywords: z.string().optional(), MetaDescription: z.string().optional(), IsOfferPackage: z.boolean().optional(), PrereqQty: z.number().int().optional(), FreeQty: z.number().int().optional(), NewGuestCost: z.string().optional(), OverrideDiscountInCustomPackage: z.boolean().optional(), NeedOtpAuthorization: z.boolean().optional(), ScheduledPaymentInstallment: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), AllowNoshowCommission: z.boolean().optional(), AllowCancellationCommission: z.boolean().optional(), ScheduledFirstPayment: z.number().int().optional(), SAC: z.string().optional(), DiscountId: z.string().optional(), AutoRenew: z.boolean().optional(), OverrideProductDiscountInCustomPackage: z.boolean().optional(), BundleProductPriceCheck: z.number().int().optional(), BundleProductPricePercentage: z.number().optional(), EnableServiceCreditTransfer: z.boolean().optional(), TrainingPackages: z.array(z.object({Id: z.number().int().optional(), PackageVersionId: z.string().optional(), ItemType: z.number().int().optional(), Quantity: z.number().int().optional(), GroupNo: z.number().int().optional(), EnableTargets: z.boolean().optional(), TargetVariation: z.number().int().optional(), ClassPrice: z.number().optional(), ClassDiscount: z.string().optional(), ClassFinalPrice: z.number().optional(), Frequency: z.number().optional(), MinQty: z.number().int().optional(), MaxQty: z.number().int().optional(), OrderNo: z.number().int().optional(), ItemFK: z.number().int().optional(), ItemId: z.string().optional(), ClassFK: z.number().int().optional()})).optional(), PackageCategoryName: z.string().optional()})).optional(), GiftCardMessage: z.string().optional(), ScheduleDate: z.string().optional(), MessageFromRecipient: z.string().optional(), GcName: z.string().optional(), send_gc_email_to_buyer: z.boolean().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), Employee: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), IsMembershipApplied: z.boolean().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional(), IsBonusGiftCard: z.boolean().optional(), Items: z.array(z.object({ItemId: z.string().optional(), ItemName: z.string().optional(), Type: z.number().int().optional(), SubItems: z.array(z.object({SubItemId: z.string().optional(), SubItemName: z.string().optional()})).optional(), Quantity: z.number().int().optional(), price: z.number().optional()})).optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), InvoicePrepaidCards: z.array(z.object({AppointmentPrepaidCard: z.object({PrepaidCard: z.object({Id: z.string().optional(), Code: z.string().optional(), Value: z.number().int().optional(), PurchasePrice: z.number().int().optional(), ValidityDays: z.number().int().optional(), IsOneTimeUse: z.boolean().optional(), ExpiryDate: z.string().optional(), Notes: z.string().optional(), GiftTypeId: z.string().optional(), SendEmailToRecipient: z.boolean().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Recipient: z.object({Id: z.string().optional(), Code: z.string().optional(), FirstName: z.string().optional(), MiddleName: z.string().optional(), LastName: z.string().optional(), Email: z.string().optional(), MobileNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), HomePhone: z.string().optional(), HomePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), WorkPhone: z.string().optional(), WorkPhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), DateOfBirth: z.string().optional(), AnniversaryDate: z.string().optional(), Address1: z.string().optional(), Address2: z.string().optional(), City: z.string().optional(), PostalCode: z.string().optional(), State: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), ShortName: z.string().optional()}).optional(), Country: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), Nationality: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), ReferralSource: z.object({Id: z.string().optional(), OrgReferralId: z.string().optional(), Name: z.string().optional()}).optional(), ReferredGuestId: z.string().optional(), ReceiveTransactionalSms: z.boolean().optional(), ReceiveMarketingEmail: z.boolean().optional(), ReceiveTransactionalEmail: z.boolean().optional(), ReceiveMarketingSms: z.boolean().optional(), CreationDate: z.string().optional(), LastUpdated: z.string().optional(), MergeIntoCode: z.string().optional(), MergeIntoGuestId: z.string().optional(), CenterId: z.string().optional(), CenterCode: z.string().optional(), CenterName: z.string().optional(), GuestIndicator: z.string().optional(), IsMember: z.number().int().optional(), DOB_IncompleteYear: z.string().optional(), Password: z.string().optional(), UserName: z.string().optional(), FacebookUserId: z.string().optional(), SocialFaceBookUserId: z.string().optional(), SocialGoogleUserId: z.string().optional(), hasZenotiCreds: z.boolean().optional(), OldPassword: z.string().optional(), OptInForLoyaltyProgram: z.boolean().optional(), FormDetails: z.array(z.object({AppointmentId: z.string().optional(), FormId: z.string().optional(), ServiceName: z.string().optional(), ServiceDisplayName: z.string().optional(), ServiceId: z.string().optional(), Name: z.string().optional(), Filled: z.boolean().optional(), Submitted: z.boolean().optional(), LastFilledDate: z.string().optional(), FormType: z.number().int().optional(), LastFilledBy: z.string().optional(), LatestVersion: z.string().optional(), FormHistory: z.array(z.object({VersionDate: z.string().optional(), VersionDateString: z.string().optional(), VersionId: z.string().optional(), CreatedBy: z.string().optional(), FormName: z.string().optional(), FormId: z.string().optional()})).optional(), Viewonly: z.boolean().optional(), IsFormLocked: z.boolean().optional(), ExpiryDate: z.string().optional(), IsEditable: z.boolean().optional(), IsExpired: z.boolean().optional(), OwnerId: z.string().optional(), DisplayOrder: z.number().int().optional(), IsServiceForm: z.boolean().optional(), SourceAppointmentDate: z.string().optional(), Permissions: z.object({CanView: z.boolean().optional(), CanEdit: z.boolean().optional()}).optional(), FormFilledStatus: z.number().int().optional(), IsActive: z.boolean().optional(), SendLinkInNotifications: z.boolean().optional()})).optional(), IsMinors: z.boolean().optional(), LpTierInfo: z.string().optional(), GuestIndicatorValue: z.object({HighSpender: z.boolean().optional(), Member: z.number().int().optional(), LowFeedback: z.boolean().optional(), RegularGuest: z.boolean().optional(), FirstTimer: z.boolean().optional(), ReturningCustomer: z.boolean().optional(), NoShow: z.boolean().optional(), HasActivePackages: z.boolean().optional(), HasProfileAlerts: z.boolean().optional(), OtherCenterGuest: z.boolean().optional(), HasCTA: z.boolean().optional(), Dues: z.boolean().optional(), CardOnFile: z.boolean().optional(), AutoPayEnabled: z.boolean().optional()}).optional(), IsMemberbershipAddOnUser: z.number().int().optional(), HasActiveMems: z.number().int().optional(), ReceiveLpStmt: z.boolean().optional(), GenderEnumType: z.number().int().optional(), ReferralCode: z.string().optional(), EnableAutoPay: z.boolean().optional(), GuestCustomDataFilled: z.string().optional()}).optional(), Services: z.object({Services: z.array(z.object({Id: z.string().optional(), Name: z.string().optional(), DisplayName: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), Duration: z.number().int().optional(), CategoryId: z.string().optional(), IsAddOn: z.boolean().optional(), HasAddOns: z.boolean().optional(), AddOnToServiceId: z.string().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), CategoryName: z.string().optional(), AddOns: z.array(z.object({})).optional(), IsVariant: z.boolean().optional(), HasVariant: z.boolean().optional(), HasSegments: z.boolean().optional(), ParentServiceId: z.string().optional(), CartItemId: z.string().optional(), SaleAllowedAsPartOfPackageOrMembershipOnly: z.boolean().optional(), BookingWithPartialBalance: z.number().int().optional(), ShowInCatalog: z.number().int().optional(), IncludesTax: z.boolean().optional(), IsServicePriceScaledForAnyTherapist: z.boolean().optional(), canPerformService: z.boolean().optional(), Membership: z.object({Id: z.string().optional(), VersionId: z.string().optional(), SetupMembershipId: z.string().optional(), Name: z.string().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), SetupPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), DisplayName: z.string().optional(), DisplayPrice: z.string().optional(), ImagePaths: z.object({"sample string 1": z.string().optional(), "sample string 3": z.string().optional()}).optional(), IsRecurrringMembership: z.boolean().optional(), MembershipType: z.number().int().optional(), FirstCollectionAfter: z.number().int().optional(), Description: z.string().optional(), HTMLDescription: z.string().optional(), TermsandConditions: z.string().optional(), TermsandConditionsAcceptance: z.string().optional(), enforce_mandatory_fields: z.boolean().optional(), FrequencyText: z.string().optional()}).optional(), PseudoAppliedMembership: z.number().int().optional(), ScaledDuration: z.number().int().optional(), AppointmentId: z.string().optional(), override_product_consumption: z.boolean().optional(), override_default_product_consumption: z.boolean().optional(), ServiceFinalPrice: z.number().int().optional(), Void: z.boolean().optional(), RecoveryTime: z.number().int().optional(), Code: z.string().optional(), CampaignInfo: z.object({CampaignOriginalPrice: z.number().int().optional(), DiscountPercentage: z.number().int().optional(), DiscountValue: z.number().int().optional(), CampaignName: z.string().optional(), CampaignId: z.string().optional(), CenterTaxId: z.string().optional(), PriceBeforeTax: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), Tax: z.number().int().optional(), CampaignPrice: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), PriceWithOutTax: z.number().int().optional(), environmentalFee: z.number().int().optional(), environmentalFeeLabel: z.string().optional()}).optional()}).optional(), PreRequisites: z.array(z.object({})).optional(), EnforcePreRequisites: z.boolean().optional(), ClubPreRequisites: z.boolean().optional(), ValidityDays: z.number().int().optional(), BookingOrder: z.number().int().optional(), ValidityDaysAsPreRequisite: z.number().int().optional(), tips_enabled: z.boolean().optional(), EnableCatalogServiceFrequency: z.boolean().optional(), CatalogServiceFrequency: z.number().int().optional()})).optional()}).optional(), RestrictRedemptionToSaleCenter: z.boolean().optional(), ConfirmationMessage: z.string().optional(), GiftCardTemplateId: z.string().optional(), SelectedTemplateId: z.string().optional(), gcPackage: z.array(z.object({PackageId: z.string().optional(), PackageName: z.string().optional(), PackageDesc: z.string().optional(), PackageCode: z.string().optional(), OrganizationId: z.string().optional(), BookingStartDate: z.string().optional(), BookingEndDate: z.string().optional(), AllowGiftCertificates: z.boolean().optional(), PackagePrice: z.number().int().optional(), ComissionPercentage: z.number().optional(), PackageType: z.number().int().optional(), ExpirationDays: z.number().int().optional(), ExpirationDate: z.string().optional(), Void: z.boolean().optional(), PackageVersionId: z.string().optional(), enddate: z.string().optional(), ComissionEligible: z.boolean().optional(), CommissionFactor: z.number().optional(), ShowInCatalog: z.number().int().optional(), VideoURL: z.string().optional(), PackageLength: z.number().int().optional(), PackageDisplayName: z.string().optional(), PackageCatalogPrice: z.string().optional(), Custom: z.boolean().optional(), AllowMembershipRedemption: z.boolean().optional(), CanBook: z.boolean().optional(), ShowPrice: z.boolean().optional(), PackageCategoryId: z.string().optional(), BusinessUnitId: z.string().optional(), IsCustomtemplate: z.boolean().optional(), TemplatePackageVersionId: z.string().optional(), RedemptionFrequencydays: z.number().int().optional(), Visits: z.number().int().optional(), GracePeriod: z.string().optional(), TargetName: z.string().optional(), TargetValue: z.number().optional(), CloseOnTargetCompletion: z.boolean().optional(), PackageOwner: z.string().optional(), InitiallyRecognized: z.number().optional(), sortorder: z.number().int().optional(), PackageValidityModelId: z.string().optional(), Active: z.boolean().optional(), ServiceFrequencyScalingFactor: z.number().optional(), StartValidityAtFirstRedemption: z.boolean().optional(), EnablePriceManualOverride: z.boolean().optional(), TermsandConditions: z.string().optional(), TargetType: z.number().int().optional(), PackageFreezeCount: z.number().int().optional(), AllowCancellationFee: z.boolean().optional(), AllowNoshowFee: z.boolean().optional(), CommissionType: z.number().int().optional(), FlatCommissionValue: z.number().optional(), BookingStartTime: z.string().optional(), BookingEndTime: z.string().optional(), PackageInternalCost: z.number().int().optional(), MinPartialAmount: z.number().int().optional(), IncludeBundleProductPrice: z.boolean().optional(), HTMLDescription: z.string().optional(), CalculateServiceLevelTax: z.boolean().optional(), NumOfServicesToBeSelected: z.number().int().optional(), WebstorePageTitle: z.string().optional(), MetaKeywords: z.string().optional(), MetaDescription: z.string().optional(), IsOfferPackage: z.boolean().optional(), PrereqQty: z.number().int().optional(), FreeQty: z.number().int().optional(), NewGuestCost: z.string().optional(), OverrideDiscountInCustomPackage: z.boolean().optional(), NeedOtpAuthorization: z.boolean().optional(), ScheduledPaymentInstallment: z.number().int().optional(), ScheduledPaymentFrequency: z.number().int().optional(), ScheduledPaymentFrequencyType: z.number().int().optional(), AllowNoshowCommission: z.boolean().optional(), AllowCancellationCommission: z.boolean().optional(), ScheduledFirstPayment: z.number().int().optional(), SAC: z.string().optional(), DiscountId: z.string().optional(), AutoRenew: z.boolean().optional(), OverrideProductDiscountInCustomPackage: z.boolean().optional(), BundleProductPriceCheck: z.number().int().optional(), BundleProductPricePercentage: z.number().optional(), EnableServiceCreditTransfer: z.boolean().optional(), TrainingPackages: z.array(z.object({Id: z.number().int().optional(), PackageVersionId: z.string().optional(), ItemType: z.number().int().optional(), Quantity: z.number().int().optional(), GroupNo: z.number().int().optional(), EnableTargets: z.boolean().optional(), TargetVariation: z.number().int().optional(), ClassPrice: z.number().optional(), ClassDiscount: z.string().optional(), ClassFinalPrice: z.number().optional(), Frequency: z.number().optional(), MinQty: z.number().int().optional(), MaxQty: z.number().int().optional(), OrderNo: z.number().int().optional(), ItemFK: z.number().int().optional(), ItemId: z.string().optional(), ClassFK: z.number().int().optional()})).optional(), PackageCategoryName: z.string().optional()})).optional(), GiftCardMessage: z.string().optional(), ScheduleDate: z.string().optional(), MessageFromRecipient: z.string().optional(), GcName: z.string().optional(), send_gc_email_to_buyer: z.boolean().optional()}).optional(), InvoiceItemId: z.string().optional(), InvoiceItemAddedTime: z.string().optional(), Employee: z.object({Id: z.string().optional(), ShortName: z.string().optional(), NickName: z.string().optional(), FullName: z.string().optional(), Email: z.string().optional(), PhoneNumber: z.string().optional(), MobilePhoneModel: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Gender: z.number().int().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), IsAvailable: z.boolean().optional(), WaiveBiometricFlag: z.boolean().optional(), VanityImageUrl: z.string().optional(), ScalingFactor: z.number().optional(), ScaledPrice: z.number().int().optional(), ServiceTime: z.number().int().optional(), DisplayName: z.string().optional(), IdleTime: z.number().int().optional(), OriginalPrice: z.number().int().optional(), OriginalTax: z.number().int().optional(), Job: z.object({id: z.string().optional(), name: z.string().optional()}).optional(), BookingInterval: z.number().int().optional(), schedule: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional()})).optional(), unavailable_times: z.array(z.object({start_time: z.string().optional(), end_time: z.string().optional(), blocked_type: z.string().optional()})).optional(), LastDate: z.string().optional()}).optional(), Quantity: z.number().int().optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), IsMembershipApplied: z.boolean().optional(), IsPackageApplied: z.boolean().optional(), IsDiscountApplied: z.boolean().optional()}).optional(), AppliedMembership: z.object({MembershipId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional(), ShowChangeMembership: z.boolean().optional(), EquivalenceOptions: z.array(z.number()).optional()}).optional(), AppliedPackage: z.object({PackageId: z.string().optional(), DiscountAmount: z.number().int().optional(), Action: z.string().optional(), InvoiceItemId: z.string().optional()}).optional(), AppliedDiscount: z.object({DiscountId: z.string().optional(), CampaignId: z.string().optional(), CouponId: z.number().int().optional(), Action: z.string().optional(), Type: z.number().int().optional(), DiscountAmount: z.number().int().optional(), InvoiceItemId: z.string().optional()}).optional()})).optional(), Payments: z.array(z.object({PaymentOption: z.object({Id: z.string().optional(), PaymentMode: z.number().int().optional(), PaymentName: z.string().optional(), CardNumber: z.string().optional()}).optional(), TotalAmountPaid: z.number().int().optional(), AmountPaid: z.number().int().optional(), TipAmount: z.number().int().optional(), SSGAmount: z.number().int().optional(), FeeAmount: z.number().int().optional(), CashBackAmount: z.number().int().optional(), TransactionId: z.string().optional(), PaymentDate: z.string().optional(), CashRegisterId: z.string().optional()})).optional(), Redemptions: z.array(z.object({Option: z.object({Id: z.string().optional(), Mode: z.number().int().optional(), Name: z.string().optional()}).optional(), Amount: z.number().int().optional(), TransactionId: z.string().optional(), PaymentDate: z.string().optional(), Points: z.number().int().optional()})).optional(), RefundItems: z.array(z.object({InvoiceItemId: z.string().optional(), ItemId: z.string().optional(), Quantity: z.number().int().optional(), RefundAmount: z.number().int().optional(), RefundDate: z.string().optional()})).optional(), Lock: z.boolean().optional(), CanChangeGuest: z.boolean().optional(), CenterId: z.string().optional(), Center: z.object({Id: z.string().optional(), Country: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), PhoneCode: z.number().int().optional(), Nationality: z.string().optional()}).optional(), State: z.object({Id: z.number().int().optional(), Code: z.string().optional(), Name: z.string().optional(), ShortName: z.string().optional()}).optional(), Name: z.string().optional(), GeoLatitude: z.number().optional(), GeoLongitude: z.number().optional(), Address1: z.string().optional(), Address2: z.string().optional(), City: z.string().optional(), ZipCode: z.string().optional(), Phone1: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Phone2: z.object({CountryId: z.number().int().optional(), Number: z.string().optional(), DisplayNumber: z.string().optional()}).optional(), Email: z.string().optional(), CenterInfo: z.string().optional(), ServiceTaxNo: z.string().optional(), TIN: z.string().optional(), VAT: z.string().optional(), CST: z.string().optional(), CanBook: z.boolean().optional(), CenterCode: z.string().optional(), TimeZone: z.object({Id: z.number().int().optional(), Name: z.string().optional(), StandardName: z.string().optional(), Symbol: z.string().optional()}).optional(), CollectFeedback: z.boolean().optional(), working_hours: z.array(z.object({day_of_week: z.string().optional(), start_time: z.string().optional(), end_time: z.string().optional()})).optional(), AreServicesAvailableInCenter: z.boolean().optional(), FeedBackLink: z.string().optional(), FeedBackLabelText: z.string().optional(), isPaymentEnabled: z.boolean().optional(), isCenterVoided: z.boolean().optional(), isServiceSaleEnabled: z.boolean().optional(), isMembershipSaleEnabled: z.boolean().optional(), isGiftCardSaleEnabled: z.boolean().optional(), isSeriesPackageSaleEnabled: z.boolean().optional(), isDealsEnabled: z.boolean().optional(), EnableSelfPay: z.boolean().optional(), EnableSelfCheckIn: z.boolean().optional(), EnableAutoPay: z.boolean().optional(), AllowSelfCheckinBefore: z.number().int().optional(), AllowCheckWithinRadius: z.number().int().optional(), Zone: z.object({id: z.string().optional(), name: z.unknown()}).optional()}).optional(), CollectFeedback: z.boolean().optional(), IsFeedbackExpired: z.boolean().optional(), BookingWizardAdvancedMode: z.boolean().optional(), BookingWizardBottomPanelMode: z.boolean().optional(), Refunded: z.boolean().optional(), InvoiceAuthStatus: z.number().int().optional(), InvoiceAuthorizationStatus: z.number().int().optional(), InvTransactionStatusForAutoPay: z.number().int().optional(), InvoiceSource: z.number().int().optional(), is_created_from_booking_wizard: z.boolean().optional(), RemoveBuddyServiceFinishSegment: z.boolean().optional(), host_id: z.string().optional(), payment_made_by: z.string().optional(), entity_name: z.string().optional(), email_link: z.string().optional(), sms_link: z.string().optional(), appointment_category_id: z.string().optional(), scheduled_payment_frequency: z.number().int().optional(), scheduled_payment_installment: z.number().int().optional(), scheduled_first_payment: z.number().int().optional(), scheduled_payment_frequency_type: z.number().int().optional()})).optional(), Redemptions: z.array(z.object({Option: z.object({Id: z.string().optional(), Mode: z.number().int().optional(), Name: z.string().optional()}).optional(), Amount: z.number().int().optional(), TransactionId: z.string().optional(), PaymentDate: z.string().optional(), Points: z.number().int().optional()})).optional(), Payments: z.array(z.object({PaymentOption: z.object({Id: z.string().optional(), PaymentMode: z.number().int().optional(), PaymentName: z.string().optional(), CardNumber: z.string().optional()}).optional(), TotalAmountPaid: z.number().int().optional(), AmountPaid: z.number().int().optional(), TipAmount: z.number().int().optional(), SSGAmount: z.number().int().optional(), FeeAmount: z.number().int().optional(), CashBackAmount: z.number().int().optional(), TransactionId: z.string().optional(), PaymentDate: z.string().optional(), CashRegisterId: z.string().optional()})).optional(), Price: z.object({CurrencyId: z.number().int().optional(), Sales: z.number().int().optional(), Tax: z.number().int().optional(), Final: z.number().int().optional(), Final1: z.number().int().optional(), Discount: z.number().int().optional(), Tip: z.number().int().optional(), SSG: z.number().int().optional(), RoundingCorrection: z.number().int().optional(), DiscountedPrice: z.number().int().optional(), environmental_fee: z.number().int().optional(), environmental_fee_label: z.string().optional(), can_be_waived: z.boolean().optional()}).optional(), GroupRedemptions: z.array(z.object({GroupRedemptionId: z.string().optional(), InvoiceId: z.string().optional()})).optional(), GroupPayments: z.array(z.object({GroupTransactionId: z.string().optional(), TransactionId: z.string().optional()})).optional()}).optional(), error: z.unknown()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Send a group invoice email * * POST /v1/group_invoices/{group_invoice_id}/email */ export const createApiV1GroupInvoicesGroupInvoiceIdEmail = async (args: CreateApiV1GroupInvoicesGroupInvoiceIdEmailArgs, options?: CreateApiV1GroupInvoicesGroupInvoiceIdEmailOptions) => { const {baseUrl = "https://api.zenoti.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/v1/group_invoices/${encodeURIComponent(String(args.group_invoice_id))}/email${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(createApiV1GroupInvoicesGroupInvoiceIdEmailResponse, await res.json()) };