/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { ClosedEnum } from "../../types/enums.js"; import { FilterCondition, FilterCondition$Outbound, FilterCondition$outboundSchema, } from "./filter-condition.js"; import { SortCondition, SortCondition$Outbound, SortCondition$outboundSchema, } from "./sort-condition.js"; import { Status, Status$outboundSchema } from "./status.js"; import { TransactionReason, TransactionReason$outboundSchema, } from "./transaction-reason.js"; import { TransactionStatus, TransactionStatus$outboundSchema, } from "./transaction-status.js"; import { TransactionType, TransactionType$outboundSchema, } from "./transaction-type.js"; export const WalletTransactionFilterOrder = { Asc: "asc", Desc: "desc", } as const; export type WalletTransactionFilterOrder = ClosedEnum< typeof WalletTransactionFilterOrder >; export type WalletTransactionFilter = { createdBy?: string | undefined; creditsAvailableGt?: number | undefined; endTime?: Date | undefined; expand?: string | undefined; expiryDateAfter?: string | undefined; expiryDateBefore?: string | undefined; /** * filters allows complex filtering based on multiple fields */ filters?: Array | undefined; id?: string | undefined; limit?: number | undefined; offset?: number | undefined; order?: WalletTransactionFilterOrder | undefined; priority?: number | undefined; referenceId?: string | undefined; referenceType?: string | undefined; sort?: Array | undefined; startTime?: Date | undefined; status?: Status | undefined; transactionReason?: TransactionReason | undefined; transactionStatus?: TransactionStatus | undefined; type?: TransactionType | undefined; }; /** @internal */ export const WalletTransactionFilterOrder$outboundSchema: z.ZodMiniEnum< typeof WalletTransactionFilterOrder > = z.enum(WalletTransactionFilterOrder); /** @internal */ export type WalletTransactionFilter$Outbound = { created_by?: string | undefined; credits_available_gt?: number | undefined; end_time?: string | undefined; expand?: string | undefined; expiry_date_after?: string | undefined; expiry_date_before?: string | undefined; filters?: Array | undefined; id?: string | undefined; limit?: number | undefined; offset?: number | undefined; order?: string | undefined; priority?: number | undefined; reference_id?: string | undefined; reference_type?: string | undefined; sort?: Array | undefined; start_time?: string | undefined; status?: string | undefined; transaction_reason?: string | undefined; transaction_status?: string | undefined; type?: string | undefined; }; /** @internal */ export const WalletTransactionFilter$outboundSchema: z.ZodMiniType< WalletTransactionFilter$Outbound, WalletTransactionFilter > = z.pipe( z.object({ createdBy: z.optional(z.string()), creditsAvailableGt: z.optional(z.number()), endTime: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), expand: z.optional(z.string()), expiryDateAfter: z.optional(z.string()), expiryDateBefore: z.optional(z.string()), filters: z.optional(z.array(FilterCondition$outboundSchema)), id: z.optional(z.string()), limit: z.optional(z.int()), offset: z.optional(z.int()), order: z.optional(WalletTransactionFilterOrder$outboundSchema), priority: z.optional(z.int()), referenceId: z.optional(z.string()), referenceType: z.optional(z.string()), sort: z.optional(z.array(SortCondition$outboundSchema)), startTime: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), status: z.optional(Status$outboundSchema), transactionReason: z.optional(TransactionReason$outboundSchema), transactionStatus: z.optional(TransactionStatus$outboundSchema), type: z.optional(TransactionType$outboundSchema), }), z.transform((v) => { return remap$(v, { createdBy: "created_by", creditsAvailableGt: "credits_available_gt", endTime: "end_time", expiryDateAfter: "expiry_date_after", expiryDateBefore: "expiry_date_before", referenceId: "reference_id", referenceType: "reference_type", startTime: "start_time", transactionReason: "transaction_reason", transactionStatus: "transaction_status", }); }), ); export function walletTransactionFilterToJSON( walletTransactionFilter: WalletTransactionFilter, ): string { return JSON.stringify( WalletTransactionFilter$outboundSchema.parse(walletTransactionFilter), ); }