import {z} from 'zod' export type GetApiUsersStaffArgs = {SiteId: number, 'request.staffIds'?: Array | undefined, 'request.staffCredentials.username'?: string | undefined, 'request.staffCredentials.password'?: string | undefined, 'request.staffCredentials.siteIds'?: Array | undefined, 'request.filters'?: Array | undefined, 'request.sessionTypeId'?: number | undefined, 'request.startDateTime'?: string | undefined, 'request.locationId'?: number | undefined}; export type GetApiUsersStaffOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const mindbodyRestApiDtoModelsSiteLoginLocation = z.object({Id: z.number().int().optional(), Address: z.string().optional(), Address2: z.string().optional(), BusinessDescription: z.string().optional(), City: z.string().optional(), Description: z.string().optional(), FacilitySquareFeet: z.number().int().optional(), HasClasses: z.boolean().optional(), Latitude: z.number().optional(), Longitude: z.number().optional(), Name: z.string().optional(), Phone: z.string().optional(), PhoneExtension: z.string().optional(), PostalCode: z.string().optional(), SiteId: z.number().int().optional(), StateProvCode: z.string().optional(), Tax1: z.number().optional(), Tax2: z.number().optional(), Tax3: z.number().optional(), Tax4: z.number().optional(), Tax5: z.number().optional(), TreatmentRooms: z.number().int().optional(), MasterLocationId: z.number().int().optional()}); export const mindbodyRestApiDtoModelsSiteStaffProvider = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), ProviderID: z.string().optional(), Active: z.boolean().optional()}); export const mindbodyRestApiCommonModelsSiteClientsLegacyClientNotificationPreferences = z.object({OptedIn: z.boolean().optional(), OptedInForPromotions: z.boolean().optional(), AutomatedContactMethod: z.enum(["NormalOnly", "MobileOnly", "MobileAndNormal"]).optional()}); export const mindbodyRestApiCommonModelsSiteClientsClientNotificationPreferences = z.object({ClientId: z.number().int().optional(), StudioId: z.number().int().optional(), PromotionalEmailOptIn: z.boolean().optional(), PromotionalTextOptIn: z.boolean().optional(), ScheduleEmailOptIn: z.boolean().optional(), ScheduleTextOptIn: z.boolean().optional(), AccountEmailOptIn: z.boolean().optional(), AccountTextOptIn: z.boolean().optional(), OperationalEmailOptIn: z.boolean().optional(), TwilioOptIn: z.boolean().optional(), LegacyPreferences: mindbodyRestApiCommonModelsSiteClientsLegacyClientNotificationPreferences.optional(), OptOutSMSSentDateUTC: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteAppointmentPayRate = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), AppointmentSessionTypeID: z.number().int().optional(), PayAmount: z.number().gte(0).optional(), TimeLength: z.number().int().gte(0).lte(2147483647), PercentPay: z.number().gte(0).optional(), PrepTime: z.number().int().gte(0).lte(2147483647).optional(), FinishTime: z.number().int().gte(0).lte(2147483647).optional(), PrepTimeBak: z.number().int().optional(), FinishTimeBak: z.number().int().optional(), Active: z.boolean().optional(), StaffPrice: z.number().optional(), DefaultPrice: z.number().optional(), CreatedBy: z.number().int().optional(), LastModifiedBy: z.number().int().optional(), LastModifiedOn: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteStaffSchedule = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), Updated: z.string().optional(), Created: z.string().optional(), DaySun: z.boolean().optional(), DayMon: z.boolean().optional(), DayTue: z.boolean().optional(), DayWed: z.boolean().optional(), DayThu: z.boolean().optional(), DayFri: z.boolean().optional(), DaySat: z.boolean().optional(), ShowPublic: z.boolean().optional(), MaskPublic: z.boolean().optional(), Unavailable: z.boolean().optional(), AvailName: z.string().optional(), Location: z.number().int().optional(), ClassID: z.number().int().optional(), TGs: z.array(z.number().int()).optional(), SingleDayAvailability: z.boolean().optional(), VisitRefNo: z.number().int().optional(), ToBeDetermined: z.boolean().optional(), Description: z.string().optional(), GroupId: z.number().int().optional(), DaysOfWeek: z.array(z.enum(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"])).optional(), StartTime: z.string().optional(), EndTime: z.string().optional(), StartDate: z.string().optional(), EndDate: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteStaffSmall = z.object({PermissionGroupName: z.string().optional(), SModeID: z.number().int().optional(), DisplayName: z.string().optional(), SortOrder: z.number().int().optional(), EmailAddress: z.string().optional(), Name: z.string().optional(), Appointments: z.array(z.lazy(() => mindbodyRestApiCommonModelsSiteAppointment)).optional(), AppointmentPayRates: z.array(mindbodyRestApiCommonModelsSiteAppointmentPayRate).optional(), StaffSchedules: z.array(mindbodyRestApiCommonModelsSiteStaffSchedule).optional(), ID: z.number().int().optional(), FirstName: z.string(), LastName: z.string(), UserName: z.string().optional(), HomeSiteID: z.number().int().optional(), UserGuid: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteFormulaNote = z.object({ID: z.number().int().optional(), ClientID: z.number().int().optional(), Note: z.string().optional(), EntryDateTime: z.string().optional(), CreatedByID: z.number().int().optional(), AppointmentID: z.number().int().optional(), CreatedBy: mindbodyRestApiCommonModelsSiteStaffSmall.optional()}); export const mindbodyRestApiCommonModelsSiteMembershipSeriesType = z.object({SortOrder: z.number().int().gte(0).lte(99).optional(), MembersOnlyServiceDiscount: z.number().optional(), MembersOnlyProductDiscount: z.number().optional(), AllowInSSI: z.boolean().optional(), AllowUnpaidAppointmentBooking: z.boolean().optional(), AllowNonMemberServicePurchases: z.boolean().optional(), IconPlainList: z.array(z.number().int()).optional(), IconWithMList: z.array(z.number().int()).optional(), IconList: z.array(z.number().int()).optional(), IconNumber: z.number().int().optional(), AllowClientModeUnpaidScheduling: z.boolean().optional(), Active: z.boolean().optional(), IsSystem: z.boolean().optional(), AllowNonMemberProductPurchases: z.boolean().optional(), ScheduleOpenDayOfMonth: z.number().int().optional(), MembershipImgURL: z.string().optional(), Use2013Workflow: z.boolean().optional(), ID: z.number().int().optional(), Name: z.string().max(50)}); export const mindbodyRestApiCommonModelsSiteClientMembership = z.object({ID: z.number().int().optional(), ClientID: z.number().int().optional(), ActiveDate: z.string().optional(), ExpDate: z.string().optional(), SeriesTypeName: z.string().optional(), TypePurch: z.string().optional(), SeriesTypeID: z.number().int().optional(), IconNum: z.number().int().optional(), SeriesType: mindbodyRestApiCommonModelsSiteMembershipSeriesType.optional()}); export const mindbodyRestApiCommonModelsSiteClientsClientMedium = z.object({ExternalID: z.string().optional(), OptedIn: z.boolean().optional(), OptedInForPromotions: z.boolean().optional(), WorkPhone: z.string().optional(), WorkExtension: z.string().optional(), HomePhone: z.string().optional(), MobilePhone: z.string().optional(), Email: z.string().optional(), YellowAlert: z.string().optional(), RedAlert: z.string().optional(), GenderPreference: z.enum(["None", "Male", "Female"]).optional(), IsSystem: z.boolean().optional(), FirstApptDate: z.string().optional(), Inactive: z.boolean().optional(), CommunicationPreferences: mindbodyRestApiCommonModelsSiteClientsClientNotificationPreferences.optional(), Name: z.string().optional(), NameFormattedForAppointmentSchedule: z.string().optional(), IsCompany: z.boolean().optional(), FormulaNotes: z.array(mindbodyRestApiCommonModelsSiteFormulaNote).optional(), ClientMembership: mindbodyRestApiCommonModelsSiteClientMembership.optional(), ID: z.number().int().optional(), FirstName: z.string(), LastName: z.string(), UserName: z.string().optional(), HomeSiteID: z.number().int().optional(), UserGuid: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteProgramsAppointmentProgram = z.object({Color: z.string().optional(), DefaultCapacity: z.number().int().gte(1).lte(999).optional(), SchedOffset: z.number().int().optional(), SchedOffsetEnd: z.number().int().optional(), Asst1PayrollCode: z.string().max(50).optional(), StaffPayrollCode: z.string().max(50).optional(), CancelOffset: z.number().int().optional(), ID: z.number().int().optional(), Name: z.string().optional(), Active: z.boolean().optional(), Disabled: z.boolean().optional(), ShowOnline: z.boolean().optional(), ProgramType: z.enum(["Class", "Appointment", "Enrollment", "Media", "Resource", "Arrival"]).optional(), CancelConMode: z.boolean().optional(), MembersOnly: z.boolean().optional(), DefaultBookingLengthInMinutes: z.number().int().optional(), CreatedBy: z.number().int().optional(), LastModifiedBy: z.number().int().optional(), LastModifiedOn: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteAppointmentSessionType = z.object({Description: z.string().optional(), DefaultTimeLength: z.number().int().gte(0).lte(2147483647), ShowInConsumerMode: z.boolean().optional(), AddOn: z.boolean().optional(), BackbarAmount: z.number().optional(), Capacity: z.number().int().gte(1).lte(999), MBFSessionTypeID: z.number().int().optional(), MBFAutoMapped: z.boolean().optional(), MBFFeatured: z.number().int().optional(), CPTID: z.number().int().optional(), ResourceRequired: z.boolean().optional(), Color: z.string().max(7).optional(), FinishTimeAfterAppt: z.boolean().optional(), CPTCode: z.string().optional(), ProductId: z.number().int().optional(), ID: z.number().int().optional(), ProgramID: z.number().int(), Name: z.string().max(50), Active: z.boolean().optional(), Deleted: z.boolean().optional(), Locked: z.boolean().optional(), SortOrder: z.number().int().gte(0).lte(999), PayrollIdentifier: z.string().max(50).optional(), NumberDeducted: z.number().int().gte(0).lte(999), CreatedBy: z.number().int().optional(), LastModifiedBy: z.number().int().optional(), LastModifiedOn: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteLocation = z.object({ID: z.number().int().optional(), Name: z.string().optional(), Active: z.boolean().optional(), InvActive: z.boolean().optional(), WsShow: z.boolean().optional(), Phone: z.string().optional(), Ext: z.string().optional(), Address: z.string().optional(), Email: z.string().optional(), ContactName: z.string().optional(), ShipAddress: z.string().optional(), ShipCity: z.string().optional(), ShipState: z.string().optional(), ShipPostal: z.string().optional(), ShipPhone: z.string().optional(), ShipPoc: z.string().optional(), TaxGrouping: z.boolean().optional(), Tax1: z.number().optional(), Tax2: z.number().optional(), Tax3: z.number().optional(), Tax4: z.number().optional(), LabelTax1: z.string().optional(), LabelTax2: z.string().optional(), LabelTax3: z.string().optional(), LabelTax4: z.string().optional(), Wac: z.boolean().optional(), Address2: z.string().optional(), CsiAlertNonPreReg: z.boolean().optional(), CsiPrtReceipts: z.boolean().optional(), Mid: z.string().optional(), Tid: z.string().optional(), OpAcctNum: z.string().optional(), Tax5: z.number().optional(), LabelTax5: z.string().optional(), AutoInactiveClients: z.number().int().optional(), EnableAutoBatch: z.boolean().optional(), HostStudioID: z.number().int().optional(), FtpUsername: z.string().optional(), FtpPassword: z.string().optional(), FtpHeaderRecord: z.string().optional(), AdpCoCode: z.string().optional(), ShipAddress2: z.string().optional(), MasterLocID: z.number().int().optional(), BankClientID: z.string().optional(), BatchProcessing: z.boolean().optional(), StreetAddress: z.string().optional(), City: z.string().optional(), StateProvCode: z.string().optional(), PostalCode: z.string().optional(), Longitude: z.number().optional(), Latitude: z.number().optional(), LocationDescription: z.string().optional(), Country: z.string().optional(), StudioID: z.number().int().optional(), VATIdentificationNumber: z.string().optional(), EnableTax1: z.boolean().optional(), EnableTax2: z.boolean().optional(), EnableTax3: z.boolean().optional(), EnableTax4: z.boolean().optional(), EnableTax5: z.boolean().optional(), FacilitySquareFeet: z.number().int().optional(), NumberTreatmentRooms: z.number().int().optional(), TaxRate1DefaultLabel: z.string().optional(), TaxRate2DefaultLabel: z.string().optional(), TaxRate3DefaultLabel: z.string().optional(), TaxRate4DefaultLabel: z.string().optional(), TaxRate5DefaultLabel: z.string().optional(), StudioName: z.string().optional(), StudioShort: z.string().optional(), SubscriptionLevel: z.string().optional(), DistanceInMiles: z.number().optional(), ImageVersion: z.number().int().optional(), CountryCode: z.string().optional(), BusinessDescription: z.string().optional(), StudioAllowsGeofencedCheckins: z.boolean().optional(), UserFavoriteLocation: z.boolean().optional(), OptedInToConnect: z.boolean().optional(), ThirdPartyMonetizationOptIn: z.boolean().optional(), TotalConnectRatings: z.number().int().optional(), AverageConnectRating: z.number().optional(), Locale: z.string().optional(), SpecialCurrencyID: z.number().int().optional(), ExchangeApproved: z.boolean().optional(), OnlineBooking: z.boolean().optional(), Website: z.string().optional(), ModifiedDateTimeUTC: z.string().optional(), TimezoneId: z.string().optional(), TotalDeals: z.number().int().optional(), ShowInventoryToThirdParties: z.boolean().optional(), BillingAccountId: z.string().optional(), HasClasses: z.boolean().optional(), SiteId: z.number().int().optional()}); export const mindbodyRestApiCommonModelsSiteOldClientSeriesMedium = z.object({ID: z.number().int().optional(), Name: z.string().optional(), Duration: z.number().int().optional(), DurationUnit: z.number().int().optional(), SeriesTypeID: z.number().int().optional(), NumberOfClasses: z.number().int().optional(), Remaining: z.number().int().optional(), RealRemaining: z.number().int().optional(), Count: z.number().int().optional(), IsReturned: z.boolean().optional(), ActiveDate: z.string().optional(), PaymentDate: z.string().optional(), ExpirationDate: z.string().optional(), ActivatesOnFirstVisit: z.boolean().optional(), IsCurrentSeries: z.boolean().optional(), AllUsedUp: z.boolean().optional(), ProductID: z.number().int().optional(), SeriesType: mindbodyRestApiCommonModelsSiteMembershipSeriesType.optional()}); export const mindbodyRestApiCommonModelsSiteAddOn = z.object({ID: z.number().int().optional(), AppointmentReference: z.number().int().optional(), ServiceCategoryReference: z.number().int().optional(), ServiceCategory: mindbodyRestApiCommonModelsSiteProgramsAppointmentProgram.optional(), AppointmentTypeReference: z.number().int().optional(), AppointmentType: mindbodyRestApiCommonModelsSiteAppointmentSessionType.optional(), Staff: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), StaffReference: z.number().int().optional(), BookedOnline: z.boolean().optional(), ClientSeriesReference: z.number().int().optional(), PaymentApplied: z.boolean().optional(), Pending: z.boolean().optional(), Completed: z.boolean().optional(), RESTSource: z.string().optional(), Appointment: z.lazy(() => mindbodyRestApiCommonModelsSiteAppointment.optional())}); export const mindbodyRestApiCommonModelsSiteAdditionalAppointment = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), ProgramID: z.number().int().optional(), SessionTypeID: z.number().int().optional(), ScheduleItemId: z.number().int().optional(), ScheduleItemName: z.string().optional(), ScheduleItemType: z.enum(["Appointment", "ClassInstance", "Unavailability"]).optional(), Start: z.string().optional(), End: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteResource = z.object({ID: z.number().int().optional(), Name: z.string(), LocationID: z.number().int(), Quantity: z.number().int().optional(), Active: z.boolean().optional(), ResourceTypeID: z.number().int().optional(), Resv: z.boolean().optional(), Appt: z.boolean().optional(), Enroll: z.boolean().optional(), SortOrder: z.number().int().optional(), ShowOnPDF: z.boolean().optional()}); export const mindbodyRestApiCommonModelsSiteProgressNotesAppointmentProgressNoteSummary = z.object({AppointmentId: z.number().int().optional(), CreatedBySmodeId: z.number().int().optional(), ModifiedBySmodeId: z.number().int().optional(), CreatedDate: z.string().optional(), ModifiedDate: z.string().optional(), NoteModified: z.boolean().optional(), SaveState: z.enum(["Unsaved", "InProgress", "Complete"]).optional(), CreatedByDisplayName: z.string().optional(), ModifiedByDisplayName: z.string().optional(), CreatedByFirstName: z.string().optional(), CreatedByLastName: z.string().optional(), ModifiedByFirstName: z.string().optional(), ModifiedByLastName: z.string().optional()}); export const mindbodyRestApiCommonModelsSiteAppointment: z.ZodType = z.object({Client: mindbodyRestApiCommonModelsSiteClientsClientMedium.optional(), Staff: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), ID: z.number().int().optional(), VisitDataID: z.number().int().optional(), ClientID: z.number().int().optional(), StaffID: z.number().int().optional(), SessionTypeID: z.number().int().optional(), SessionTypeName: z.string().optional(), LateCancelled: z.boolean().optional(), EarlyCancelled: z.boolean().optional(), LocationID: z.number().int().optional(), ClientSeriesID: z.number().int().optional(), ProgramID: z.number().int().optional(), BookedOnline: z.boolean().optional(), ModifiedDateTime: z.string().optional(), Notes: z.string().optional(), Confirmed: z.boolean().optional(), Completed: z.boolean().optional(), Arrived: z.boolean().optional(), Status: z.enum(["Booked", "Completed", "Confirmed", "Arrived", "NoShow", "Cancelled"]).optional(), ModifiedByID: z.number().int().optional(), BookedByID: z.number().int().optional(), BookedDateTime: z.string().optional(), RequestedStaffID: z.number().int().optional(), AppointmentOfAddOnID: z.number().int().optional(), MBFBookingID: z.number().int().optional(), ConfirmedByID: z.number().int().optional(), ConfirmedDateTime: z.string().optional(), StaffGetsPaid: z.boolean().optional(), Missed: z.boolean().optional(), CurrentSeries: z.boolean().optional(), Lock: z.boolean().optional(), Closed: z.boolean().optional(), ClosedRevenue: z.boolean().optional(), Recurring: z.boolean().optional(), Full: z.boolean().optional(), Pending: z.boolean().optional(), NumDeducted: z.number().int().optional(), EmailReminderSent: z.boolean().optional(), MobileReminderSent: z.boolean().optional(), EmailFollowupSent: z.boolean().optional(), StaffSessionTypeRateID: z.number().int().optional(), Waitlist: z.boolean().optional(), Studio: z.number().int().optional(), OldClientID: z.number().int().optional(), ParentStaffScheduleID: z.number().int().optional(), ReservedFor: z.string().optional(), ReservedByClientID: z.number().int().optional(), RESTSource: z.string().optional(), Program: mindbodyRestApiCommonModelsSiteProgramsAppointmentProgram.optional(), SessionType: mindbodyRestApiCommonModelsSiteAppointmentSessionType.optional(), ConfirmedBy: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), BookedBy: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), ModifiedBy: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), RequestedStaff: mindbodyRestApiCommonModelsSiteStaffSmall.optional(), PrepFinishUnavailabilities: z.array(mindbodyRestApiCommonModelsSiteStaffSchedule).optional(), Location: mindbodyRestApiCommonModelsSiteLocation.optional(), ReservedByClient: mindbodyRestApiCommonModelsSiteClientsClientMedium.optional(), ClientSeries: mindbodyRestApiCommonModelsSiteOldClientSeriesMedium.optional(), ReservedByClientNameString: z.string().optional(), GenderPreference: z.enum(["None", "Male", "Female"]).optional(), Capacity: z.number().int().optional(), BookedOnFinder: z.boolean().optional(), PaymentApplied: z.boolean().optional(), StaffRequested: z.boolean().optional(), SystemClient: z.boolean().optional(), PrepTime: z.number().int().optional(), FinishTime: z.number().int().optional(), AddOns: z.array(mindbodyRestApiCommonModelsSiteAddOn).optional(), AdditionalAppointments: z.array(mindbodyRestApiCommonModelsSiteAdditionalAppointment).optional(), Resources: z.array(mindbodyRestApiCommonModelsSiteResource).optional(), FormulaNotes: z.array(mindbodyRestApiCommonModelsSiteFormulaNote).optional(), ICDCodeIDs: z.array(z.number().int()).optional(), CPTModifiers: z.array(z.string()).optional(), StaffProviderID: z.number().int().optional(), CPTUnits: z.number().int().optional(), ProgressNote: mindbodyRestApiCommonModelsSiteProgressNotesAppointmentProgressNoteSummary.optional(), ScheduleItemId: z.number().int().optional(), ScheduleItemName: z.string().optional(), ScheduleItemType: z.enum(["Appointment", "ClassInstance", "Unavailability"]).optional(), Start: z.string().optional(), End: z.string().optional()}); export const mindbodyRestApiDtoModelsSiteAppointmentPayRate = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), AppointmentSessionTypeID: z.number().int().optional(), PayRateType: z.enum(["NoPay", "FlatPay", "PercentPay"]).optional(), PayRateTypeLocalizedName: z.string().optional(), LanguageCategory: z.string().optional(), LanguagePhrase: z.string().optional(), PayAmount: z.number().optional(), PercentPay: z.number().optional(), TimeLength: z.number().int().optional(), PrepTime: z.number().int().optional(), FinishTime: z.number().int().optional(), PrepTimeBak: z.number().int().optional(), FinishTimeBak: z.number().int().optional(), Active: z.boolean().optional(), StaffPrice: z.number().optional(), DefaultPrice: z.number().optional(), CreatedBy: z.number().int().optional(), CreationDateTime: z.string().optional(), LastModifiedBy: z.number().int().optional(), LastModifiedOn: z.string().optional()}); export const mindbodyRestApiDtoModelsSiteStaffSchedule = z.object({ID: z.number().int().optional(), StaffID: z.number().int().optional(), StartTime: z.string().optional(), EndTime: z.string().optional(), StartDate: z.string().optional(), EndDate: z.string().optional(), Updated: z.string().optional(), Created: z.string().optional(), DaySun: z.boolean().optional(), DayMon: z.boolean().optional(), DayTue: z.boolean().optional(), DayWed: z.boolean().optional(), DayThu: z.boolean().optional(), DayFri: z.boolean().optional(), DaySat: z.boolean().optional(), ShowPublic: z.boolean().optional(), MaskPublic: z.boolean().optional(), Unavailable: z.boolean().optional(), AvailName: z.string().optional(), Location: z.number().int().optional(), ClassID: z.number().int().optional(), TGs: z.array(z.number().int()).optional(), SingleDayAvailability: z.boolean().optional(), VisitRefNo: z.number().int().optional(), ToBeDetermined: z.boolean().optional(), Description: z.string().optional(), DaysOfWeek: z.array(z.enum(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"])).optional(), GroupId: z.number().int().optional()}); export const mindbodyRestApiDtoModelsSiteStaff = z.object({Nickname: z.string().optional(), Address: z.string().optional(), Address2: z.string().optional(), City: z.string().optional(), State: z.string().optional(), PostalCode: z.string().optional(), ForeignZip: z.string().optional(), Country: z.string().optional(), WorkPhone: z.string().optional(), WorkExt: z.string().optional(), HomePhone: z.string().optional(), CellPhone: z.string().optional(), PhoneNumber: z.string().optional(), Pager: z.string().optional(), FaxNumber: z.string().optional(), Birthdate: z.string().optional(), Notes: z.string().optional(), Teacher: z.boolean().optional(), MassageTherapist: z.boolean().optional(), WorkshopInstructor: z.boolean().optional(), Employee: z.boolean().optional(), Active: z.boolean().optional(), Deleted: z.boolean().optional(), Locked: z.boolean().optional(), Location: z.number().int().optional(), Closed: z.boolean().optional(), Assistant: z.boolean().optional(), Ssn: z.string().optional(), Assistant2: z.boolean().optional(), EmpID: z.string().optional(), CanBeAssignedFollowups: z.boolean().optional(), HourlyRate: z.number().optional(), StdStaffCommissionPercRate: z.number().optional(), StdStaffCommissionFlatRate: z.number().optional(), PromoStaffCommissionPercRate: z.number().optional(), PromoStaffCommissionFlatRate: z.number().optional(), EarnsCommissions: z.boolean().optional(), AppointmentStaff: z.boolean().optional(), ReservationStaff: z.boolean().optional(), DefaultDeptID: z.string().optional(), Rep1: z.boolean().optional(), Rep2: z.boolean().optional(), Rep3: z.boolean().optional(), Rep4: z.boolean().optional(), Rep5: z.boolean().optional(), Rep6: z.boolean().optional(), EarnsTips: z.boolean().optional(), HideInPayrollExport: z.boolean().optional(), DisableAttachments: z.boolean().optional(), EmploymentEnd: z.string().optional(), EmploymentStart: z.string().optional(), IndependentContractor: z.boolean().optional(), GoogleCalUserName: z.string().optional(), GoogleCalID: z.string().optional(), MobileProvider: z.number().int().optional(), AutomatedContactMethod: z.number().int().optional(), IsSystem: z.boolean().optional(), LastGoogleSyncStart: z.string().optional(), LastGoogleSyncEnd: z.string().optional(), AlwaysAllowDoubleBooking: z.boolean().optional(), NameForDropDown: z.string().optional(), ImageURL: z.string().optional(), IsSalesRep: z.boolean().optional(), IsOwner: z.boolean().optional(), MindbodyEmailOptIn: z.boolean().optional(), CreationDateTime: z.string().optional(), UserAccessLevel: z.string().optional(), IsServiceProvider: z.boolean().optional(), LoginLocations: z.array(mindbodyRestApiDtoModelsSiteLoginLocation).optional(), Gender: z.boolean().optional(), Bio: z.string().optional(), ProviderIDs: z.array(mindbodyRestApiDtoModelsSiteStaffProvider).optional(), ID: z.number().int().optional(), UserGuid: z.string().optional(), PermissionGroupName: z.string().optional(), SModeID: z.number().int().optional(), DisplayName: z.string().optional(), SortOrder: z.number().int().optional(), EmailAddress: z.string().optional(), FirstName: z.string().optional(), LastName: z.string().optional(), Name: z.string().optional(), UserName: z.string().optional(), HomeSiteID: z.number().int().optional(), Appointments: z.array(mindbodyRestApiCommonModelsSiteAppointment).optional(), AppointmentPayRates: z.array(mindbodyRestApiDtoModelsSiteAppointmentPayRate).optional(), StaffSchedules: z.array(mindbodyRestApiDtoModelsSiteStaffSchedule).optional()}); export const getApiUsersStaffResponse = z.array(mindbodyRestApiDtoModelsSiteStaff); 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 }; /** * The way to find all staff or a single staff member. * * GET /Users/Staff */ export const getApiUsersStaff = async (args: GetApiUsersStaffArgs, options?: GetApiUsersStaffOptions) => { const {baseUrl = "https://api.mindbodyonline.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.SiteId != null) headers.set("SiteId", String(args.SiteId)) for (const item of args['request.staffIds'] ?? []) query.append("request.staffIds", String(item)) if (args['request.staffCredentials.username'] != null) query.append("request.staffCredentials.username", String(args['request.staffCredentials.username'])) if (args['request.staffCredentials.password'] != null) query.append("request.staffCredentials.password", String(args['request.staffCredentials.password'])) for (const item of args['request.staffCredentials.siteIds'] ?? []) query.append("request.staffCredentials.siteIds", String(item)) for (const item of args['request.filters'] ?? []) query.append("request.filters", String(item)) if (args['request.sessionTypeId'] != null) query.append("request.sessionTypeId", String(args['request.sessionTypeId'])) if (args['request.startDateTime'] != null) query.append("request.startDateTime", String(args['request.startDateTime'])) if (args['request.locationId'] != null) query.append("request.locationId", String(args['request.locationId'])) const url = `${baseUrl.replace(/\/+$/, '')}/Users/Staff${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiUsersStaffResponse, await res.json()) };