import {z} from 'zod' export type QPilotCoreModelsDtoRequestsScheduledOrderProcessingCycleEditRequestDto = {chargedTotal?: number | undefined, notes?: (string | null) | undefined}; export type UpdateApiSitesSiteIdProcessingCyclesProcessingCycleIdArgs = {siteId: number, processingCycleId: number, body: QPilotCoreModelsDtoRequestsScheduledOrderProcessingCycleEditRequestDto}; export type UpdateApiSitesSiteIdProcessingCyclesProcessingCycleIdOptions = {baseUrl?: string | undefined, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const qPilotCoreModelsProcessingCycleStatus = z.enum(["Processing", "Success", "Failed", "Retry", "Void"]); export const qPilotCoreModelsProcessingErrorCode = z.union([z.literal(99), z.literal(1000), z.literal(1001), z.literal(1002), z.literal(1003), z.literal(1004), z.literal(1005), z.literal(2000), z.literal(2001), z.literal(3000), z.literal(3001), z.literal(3002)]); export const qPilotCoreModelsPreProcessingValidationResultCode = z.union([z.literal(1), z.literal(2), z.literal(4), z.literal(8), z.literal(16), z.literal(32), z.literal(64), z.literal(128), z.literal(256)]); export const qPilotCoreModelsProcessingLogType = z.enum(["ProcessingStart", "ProcessingStartManualRetry", "ProcessingStartAutomaticRetry", "ProcessingError", "ProcessingSuccess", "ProcessingStartManualContinue", "ProcessingInformation"]); export const qPilotCoreModelsProcessingStep = z.enum(["StartPreProcessing", "PreProcessingError", "FinishedPreProcessing", "StartProcessing", "ProcessingError", "FinishedProcessing", "NotifyingErrorToClientIntegration", "NotifyedErrorToClientIntegration", "InitializingCouponsAndFeeLines", "CouponsAndFeeLinesInitialized", "CreatingClientOrder", "ClientOrderCreated", "UpdatingWooCommerceSiteMetadata", "WooCommerceSiteMetadaUpdated", "UpdatingProcessingCycleTotals", "ProcessingCycleTotalsUpdated", "UpdatingProcessingCycleMetadata", "ProcessingCycleMetadataUpdated", "CreatingPayment", "PaymentCreated", "ProcessingPayment", "PaymentProcessed", "AddingChargifyUsage", "ChargifyUsageAdded", "SendingScheduledOrderProcessedWebhook", "ScheduledOrderProcessedWebhookSent", "SendingWooCommerceNotification", "WooCommerceNotificationSent", "ScheduledOrderUpdatingCouponUsage", "ScheduledOrderCouponUsageUpdated", "ScheduledOrderUpdatingCouponAssignments", "ScheduledOrderCouponAssignmentsUpdated", "ApplyingMaps", "MapsApplied", "ScheduledOrderUpdatingItems", "ScheduledOrderUpdatedItems", "LoggingScheduledOrderFailure", "ScheduledOrderFailureLogged", "SendingFailureCustomerEmail", "CustomerEmailError", "FailureCustomerEmailSent", "SendingFailureMerchantEmail", "FailureMerchantEmailError", "FailureMerchantEmailSent", "UpdatingClientOrder", "ClientOrderUpdated", "UpdatingFailedOrder", "FailedOrderUpdated"]); export const qPilotCoreModelsProcessingStage = z.enum(["PreProcessing", "ClientOrderCreation", "PaymentProcessing", "ClientOrderUpdate", "OtherProcessingTasks", "GenericProcessing"]); export const qPilotCoreModelsProcessingLog = z.object({id: z.number().int().optional(), createdUtc: z.string(), type: qPilotCoreModelsProcessingLogType, description: z.string().min(1), processingCycleId: z.number().int(), processingStep: qPilotCoreModelsProcessingStep.optional(), processingStage: qPilotCoreModelsProcessingStage.optional(), isInternal: z.boolean().optional()}); export const qPilotCoreServiceBusModelsServiceBusMessageOrigin = z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]); export const qPilotCoreModelsDtoEntitiesProcessingCycleDto = z.object({id: z.number().int().optional(), processingId: z.string().nullable().optional(), createdUtc: z.string().optional(), startDateUtc: z.string().optional(), endDateUtc: z.string().nullable().optional(), status: qPilotCoreModelsProcessingCycleStatus.optional(), retryCount: z.number().int().optional(), scheduledOrderId: z.number().int().optional(), currencyIso: z.string().nullable().optional(), total: z.number().nullable().optional(), chargedTotal: z.number().nullable().optional(), chargeTotalDiscount: z.number().nullable().optional(), scheduledOrderFailureReason: z.string().nullable().optional(), paymentGatewayTransactionId: z.string().nullable().optional(), paymentGatewayResponse: z.string().nullable().optional(), paymentGatewayErrorDescription: z.string().nullable().optional(), paymentGatewayErrorCode: z.string().nullable().optional(), clientOrderId: z.string().nullable().optional(), clientOrderCreatedDateUtc: z.string().nullable().optional(), processingErrorCode: qPilotCoreModelsProcessingErrorCode.optional(), preProcessingValidationResultCode: qPilotCoreModelsPreProcessingValidationResultCode.optional(), processingLogs: z.array(qPilotCoreModelsProcessingLog).nullable().optional(), origin: qPilotCoreServiceBusModelsServiceBusMessageOrigin.optional(), scheduledOrderTotal: z.number().nullable().optional(), scheduledOrderCustomerEmail: z.string().nullable().optional(), scheduledOrderLastOccurrenceUtc: z.string().nullable().optional(), scheduledOrderNextOccurrenceUtc: z.string().nullable().optional(), metadata: z.record(z.string(), z.unknown()).nullable().optional(), metadataJson: z.string().nullable().optional(), isRetryable: z.boolean().optional(), canBeCompleted: z.boolean().nullable().optional(), canBeVoid: z.boolean().nullable().optional(), canBeEdited: z.boolean().nullable().optional(), paymentSucceeded: z.boolean().nullable().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 }; /** * PUT /Sites/{siteId}/ProcessingCycles/{processingCycleId} */ export const updateApiSitesSiteIdProcessingCyclesProcessingCycleId = async (args: UpdateApiSitesSiteIdProcessingCyclesProcessingCycleIdArgs, options?: UpdateApiSitesSiteIdProcessingCyclesProcessingCycleIdOptions) => { const {baseUrl = "https://api.qpilot.cloud", fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (Bearer !== undefined) headers.set("Authorization", Bearer) const url = `${baseUrl.replace(/\/+$/, '')}/Sites/${encodeURIComponent(String(args.siteId))}/ProcessingCycles/${encodeURIComponent(String(args.processingCycleId))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", 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(qPilotCoreModelsDtoEntitiesProcessingCycleDto, await res.json()) };