import {z} from 'zod' export type GetApiEmployeeV1GetEmployeesByPageArgs = {authenticationtoken: string, includeAudits?: boolean | undefined, includeLocations?: string | undefined, includePositions?: boolean | undefined, includeTerminated?: string | undefined, locationCode?: string | undefined, minutesSinceUpdate?: number | undefined, pageNumber?: number | undefined, pageSize?: number | undefined, password: string, sitename: string, updatedAfter?: string | undefined, updatedBefore?: string | undefined, userid: string, 'X-B3-TraceId'?: string | undefined, includeNull?: boolean | undefined}; export type GetApiEmployeeV1GetEmployeesByPageOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; export const employeeAudit = z.object({auditDate: z.string().optional(), changeType: z.enum(["A", "C", "D", "E", "X"]).optional(), changeValue: z.string().optional(), editValue: z.string().optional(), fieldName: z.string().optional(), id: z.number().int(), originalValue: z.string().optional(), sectionName: z.string().optional(), userFirstName: z.string().optional(), userId: z.string().optional(), userLastName: z.string().optional(), valueDataType: z.enum(["C", "D", "N"]).optional()}); export const employeeLocation = z.object({activeFlag: z.enum(["N", "Y"]).optional(), allocateLaborTo: z.enum(["N", "Y"]).optional(), deleteFlag: z.enum(["N", "Y"]).optional(), employeeNumber: z.string().optional(), id: z.number().int().optional(), locationCityName: z.string().optional(), locationCode: z.string(), locationMarketName: z.string().optional(), locationName: z.string().optional(), locationStateName: z.string().optional(), posExportFlag: z.boolean().optional(), posId: z.string().optional(), primaryLocationFlag: z.boolean().optional()}); export const employeePosition = z.object({altLocationsFlag: z.enum(["N", "Y"]).optional(), deleteFlag: z.enum(["N", "Y"]).optional(), employeeNumber: z.string().optional(), id: z.number().int().optional(), payRate: z.number().optional(), payRateDefault: z.number().optional(), payRateMaximum: z.number().optional(), payRateMinimum: z.number().optional(), payrollCode: z.string().optional(), posCode: z.string(), positionCode: z.string(), positionGlDescription: z.string().optional(), positionGlSubstructure: z.string().optional(), positionName: z.string().optional(), positionPlGroupingCode: z.string().optional(), positionPlGroupingDesc: z.string().optional(), primaryPositionFlag: z.enum(["N", "Y"]).optional(), skillLevelCode: z.number().int().optional(), skillLevelDescription: z.string().optional(), wageMatrix: z.number().int().optional()}); export const employeeGet = z.object({address1: z.string().optional(), address2: z.string().optional(), age: z.number().int().optional(), allergies: z.string().optional(), breakWaiver: z.enum(["N", "Y"]).optional(), broadcastSchedule: z.enum(["N", "Y"]).optional(), city: z.string().optional(), country: z.string().optional(), createUser: z.number().int().optional(), dateCreate: z.string().optional(), dateEdit: z.string().optional(), dateEditUtc: z.string().optional(), dateHired: z.string(), dateOfBirth: z.string(), dateTerminated: z.string().optional(), editUser: z.number().int().optional(), eligibleForRehire: z.enum(["false", "true"]).optional(), emailAddress: z.string().optional(), emergencyContactName: z.string().optional(), emergencyContactPhone: z.string().optional(), employeeAudits: z.array(employeeAudit).optional(), employeeChecklistItem01: z.string().optional(), employeeChecklistItem02: z.string().optional(), employeeChecklistItem03: z.string().optional(), employeeChecklistItem04: z.string().optional(), employeeChecklistItem05: z.string().optional(), employeeChecklistItem06: z.string().optional(), employeeChecklistItem07: z.string().optional(), employeeChecklistItem08: z.string().optional(), employeeChecklistItem09: z.string().optional(), employeeChecklistItem10: z.string().optional(), employeeLocations: z.array(employeeLocation).optional(), employeeNickname: z.string().optional(), employeeNumber: z.string(), employeePositions: z.array(employeePosition).optional(), ethnicGroup: z.string().optional(), federalAdditionalWithholding: z.number().optional(), federalExemptions: z.number().int().optional(), federalMaritalStatus: z.string().optional(), firstName: z.string(), flexField01: z.string().optional(), flexField02: z.string().optional(), flexField03: z.string().optional(), flexField04: z.string().optional(), flexField05: z.string().optional(), flexField06: z.string().optional(), flexField07: z.string().optional(), flexField08: z.string().optional(), flexField09: z.string().optional(), flexField10: z.string().optional(), lastName: z.string(), locationId: z.number().int().optional(), locationName: z.string().optional(), manager: z.enum(["N", "Y"]).optional(), mealProgramDeduction: z.number().optional(), middleName: z.string().optional(), minorLaborProgramCode: z.string().optional(), partTime: z.enum(["N", "Y"]).optional(), payRate01: z.number().optional(), payRate02: z.number().optional(), payRate03: z.number().optional(), payRate04: z.number().optional(), payRate05: z.number().optional(), payRate06: z.number().optional(), payRate07: z.number().optional(), payRate08: z.number().optional(), payRate09: z.number().optional(), payRate10: z.number().optional(), payType: z.string(), payrollIdNumber: z.string().optional(), phoneNumber: z.string().optional(), posId: z.string().optional(), positionCode01: z.string().optional(), positionCode02: z.string().optional(), positionCode03: z.string().optional(), positionCode04: z.string().optional(), positionCode05: z.string().optional(), positionCode06: z.string().optional(), positionCode07: z.string().optional(), positionCode08: z.string().optional(), positionCode09: z.string().optional(), positionCode10: z.string().optional(), postalCode: z.string().optional(), primaryLocationCode: z.string().optional(), primaryPositionName: z.string().optional(), pto01: z.number().optional(), pto02: z.number().optional(), pto03: z.number().optional(), pto04: z.number().optional(), pto05: z.number().optional(), pto06: z.number().optional(), pto07: z.number().optional(), pto08: z.number().optional(), pto09: z.number().optional(), pto10: z.number().optional(), salaryAmount: z.number().optional(), sex: z.enum(["F", "M", "X"]).optional(), sickHours: z.number().optional(), skillLevel01: z.number().optional(), skillLevel02: z.number().optional(), skillLevel03: z.number().optional(), skillLevel04: z.number().optional(), skillLevel05: z.number().optional(), skillLevel06: z.number().optional(), skillLevel07: z.number().optional(), skillLevel08: z.number().optional(), skillLevel09: z.number().optional(), skillLevel10: z.number().optional(), socialSecurityNumber: z.string().optional(), stateAdditionalWithholding: z.number().optional(), stateExemptions: z.number().int().optional(), stateMaritalStatus: z.string().optional(), stateProvince: z.string().optional(), status: z.string(), statusCode: z.string().optional(), suiSdiTaxJurisdictionCode: z.string().optional(), terminationReason: z.string().optional(), uniformDeductionAmount: z.number().optional(), unionMembership: z.string().optional(), wageMatrixRow01: z.number().optional(), wageMatrixRow02: z.number().optional(), wageMatrixRow03: z.number().optional(), wageMatrixRow04: z.number().optional(), wageMatrixRow05: z.number().optional(), wageMatrixRow06: z.number().optional(), wageMatrixRow07: z.number().optional(), wageMatrixRow08: z.number().optional(), wageMatrixRow09: z.number().optional(), wageMatrixRow10: z.number().optional()}); export const employeeBatchResponseDto = z.object({employeeDetails: z.array(employeeGet).optional(), hasNext: z.boolean().optional(), totalPages: z.number().int().optional()}); 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 }; /** * getEmployeesByPageV1 * * GET /employee/v1/getEmployeesByPage */ export const getApiEmployeeV1GetEmployeesByPage = async (args: GetApiEmployeeV1GetEmployeesByPageArgs, options: GetApiEmployeeV1GetEmployeesByPageOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.authenticationtoken != null) headers.set("authenticationtoken", String(args.authenticationtoken)) if (args.includeAudits != null) query.append("includeAudits", String(args.includeAudits)) if (args.includeLocations != null) query.append("includeLocations", String(args.includeLocations)) if (args.includePositions != null) query.append("includePositions", String(args.includePositions)) if (args.includeTerminated != null) query.append("includeTerminated", String(args.includeTerminated)) if (args.locationCode != null) query.append("locationCode", String(args.locationCode)) if (args.minutesSinceUpdate != null) query.append("minutesSinceUpdate", String(args.minutesSinceUpdate)) if (args.pageNumber != null) query.append("pageNumber", String(args.pageNumber)) if (args.pageSize != null) query.append("pageSize", String(args.pageSize)) if (args.password != null) headers.set("password", String(args.password)) if (args.sitename != null) headers.set("sitename", String(args.sitename)) if (args.updatedAfter != null) query.append("updatedAfter", String(args.updatedAfter)) if (args.updatedBefore != null) query.append("updatedBefore", String(args.updatedBefore)) if (args.userid != null) headers.set("userid", String(args.userid)) if (args['X-B3-TraceId'] != null) headers.set("X-B3-TraceId", String(args['X-B3-TraceId'])) if (args.includeNull != null) query.append("includeNull", String(args.includeNull)) const url = `${baseUrl.replace(/\/+$/, '')}/employee/v1/getEmployeesByPage${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(employeeBatchResponseDto, await res.json()) };