import {z} from 'zod' export type ObjectStatus = 'Active' | 'Inactive'; export type RetroPayMode = 'ValueChange' | 'None'; export type PayrunJobStatus = 'Draft' | 'Release' | 'Process' | 'Complete' | 'Forecast' | 'Abort' | 'Cancel'; export type PayrunJobResult = 'Full' | 'Incremental'; export type PayrunJobEmployee = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, employeeId: number}; export type ValueType = 'String' | 'Boolean' | 'Integer' | 'NumericBoolean' | 'Decimal' | 'DateTime' | 'None' | 'Date' | 'Weekday' | 'Month' | 'Year' | 'Money' | 'Percent' | 'WebResource'; export type WageTypeCustomResult = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, wageTypeResultId?: number | undefined, tenantId?: number | undefined, employeeId?: number | undefined, divisionId?: number | undefined, wageTypeNumber: number, wageTypeName?: (string | null) | undefined, wageTypeNameLocalizations?: ({[key: string]: string | null} | null) | undefined, source: string, valueType?: ValueType | undefined, value: number, culture?: (string | null) | undefined, start: string, end: string, tags?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined}; export type WageTypeResultSet = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, payrollResultId?: number | undefined, tenantId?: number | undefined, employeeId?: number | undefined, divisionId?: number | undefined, payrunJobId?: number | undefined, forecast?: (string | null) | undefined, parentJobId?: (number | null) | undefined, wageTypeId: number, wageTypeNumber: number, wageTypeName: string, wageTypeNameLocalizations?: ({[key: string]: string | null} | null) | undefined, valueType?: ValueType | undefined, value: number, culture?: (string | null) | undefined, start: string, end: string, tags?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined, customResults?: (Array | null) | undefined}; export type CollectMode = 'Summary' | 'Minimum' | 'Maximum' | 'Average' | 'Range' | 'Count'; export type CollectorCustomResult = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, collectorResultId?: number | undefined, tenantId?: number | undefined, employeeId?: number | undefined, divisionId?: number | undefined, collectorName: string, collectorNameLocalizations?: ({[key: string]: string | null} | null) | undefined, source: string, valueType: ValueType, value: number, culture?: (string | null) | undefined, start: string, end: string, tags?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined}; export type CollectorResultSet = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, payrollResultId?: number | undefined, tenantId?: number | undefined, employeeId?: number | undefined, divisionId?: number | undefined, payrunJobId?: number | undefined, forecast?: (string | null) | undefined, parentJobId?: (number | null) | undefined, collectorId: number, collectorName: string, collectorNameLocalizations?: ({[key: string]: string | null} | null) | undefined, collectMode: CollectMode, negated: boolean, valueType: ValueType, value: number, culture?: (string | null) | undefined, start: string, end: string, tags?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined, customResults?: (Array | null) | undefined}; export type PayrunResult = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, payrollResultId?: number | undefined, tenantId?: number | undefined, employeeId?: number | undefined, divisionId?: number | undefined, payrunJobId?: number | undefined, forecast?: (string | null) | undefined, parentJobId?: (number | null) | undefined, source: string, name: string, nameLocalizations?: ({[key: string]: string | null} | null) | undefined, slot?: (string | null) | undefined, valueType: ValueType, value: string, culture?: (string | null) | undefined, numericValue?: (number | null) | undefined, start: string, end: string, tags?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined}; export type PayrollResultSet = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, payrollId: number, payrollName?: (string | null) | undefined, payrunId?: number | undefined, payrunName?: (string | null) | undefined, payrunJobId: number, payrunJobName?: (string | null) | undefined, employeeId: number, employeeIdentifier?: (string | null) | undefined, divisionId: number, divisionName?: (string | null) | undefined, cycleName: string, cycleStart: string, cycleEnd: string, periodName: string, periodStart: string, periodEnd?: string | undefined, wageTypeResults?: (Array | null) | undefined, collectorResults?: (Array | null) | undefined, payrunResults?: (Array | null) | undefined}; export type PayrunJobSet = {id?: number | undefined, status?: ObjectStatus | undefined, created?: string | undefined, updated?: string | undefined, name: string, owner?: (string | null) | undefined, payrunId: number, payrollId: number, divisionId?: number | undefined, parentJobId?: (number | null) | undefined, createdUserId: number, releasedUserId?: (number | null) | undefined, processedUserId?: (number | null) | undefined, finishedUserId?: (number | null) | undefined, retroPayMode?: RetroPayMode | undefined, jobStatus?: PayrunJobStatus | undefined, jobResult?: PayrunJobResult | undefined, tags?: (Array | null) | undefined, forecast?: (string | null) | undefined, cycleName: string, cycleStart: string, cycleEnd: string, periodName: string, periodStart: string, periodEnd: string, evaluationDate: string, released?: (string | null) | undefined, processed?: (string | null) | undefined, finished?: (string | null) | undefined, createdReason: string, releasedReason?: (string | null) | undefined, processedReason?: (string | null) | undefined, finishedReason?: (string | null) | undefined, totalEmployeeCount?: number | undefined, processedEmployeeCount?: number | undefined, jobStart: string, jobEnd?: (string | null) | undefined, message?: (string | null) | undefined, errorMessage?: (string | null) | undefined, employees?: (Array | null) | undefined, attributes?: ({[key: string]: unknown} | null) | undefined, payrunName?: (string | null) | undefined, divisionName?: (string | null) | undefined, userIdentifier?: (string | null) | undefined, resultSets?: (Array | null) | undefined}; export type CreateApiApiTenantsTenantIdPayrunsJobsImportArgs = {tenantId: number, body: Array}; export type CreateApiApiTenantsTenantIdPayrunsJobsImportOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; export const createApiApiTenantsTenantIdPayrunsJobsImportResponse = z.number().int(); 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 }; /** * POST /api/tenants/{tenantId}/payruns/jobs/import */ export const createApiApiTenantsTenantIdPayrunsJobsImport = async (args: CreateApiApiTenantsTenantIdPayrunsJobsImportArgs, options: CreateApiApiTenantsTenantIdPayrunsJobsImportOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/api/tenants/${encodeURIComponent(String(args.tenantId))}/payruns/jobs/import${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(createApiApiTenantsTenantIdPayrunsJobsImportResponse, await res.json()) };