/* * 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"; export type CreatePriceUnitRequest = { /** * base_currency is the currency that the price unit is based on */ baseCurrency: string; code: string; /** * ConversionRate defines the exchange rate from this price unit to the base currency. * * @remarks * This rate is used to convert amounts in the custom price unit to the base currency for storage and billing. * * Conversion formula: * price_unit_amount * conversion_rate = base_currency_amount * * Example: * If conversion_rate = "0.01" and base_currency = "usd": * 100 price_unit tokens * 0.01 = 1.00 USD * * Note: Rounding precision is determined by the base currency (e.g., USD uses 2 decimal places, JPY uses 0). */ conversionRate: string; metadata?: { [k: string]: string } | undefined; name: string; symbol: string; }; /** @internal */ export type CreatePriceUnitRequest$Outbound = { base_currency: string; code: string; conversion_rate: string; metadata?: { [k: string]: string } | undefined; name: string; symbol: string; }; /** @internal */ export const CreatePriceUnitRequest$outboundSchema: z.ZodMiniType< CreatePriceUnitRequest$Outbound, CreatePriceUnitRequest > = z.pipe( z.object({ baseCurrency: z.string(), code: z.string(), conversionRate: z.string(), metadata: z.optional(z.record(z.string(), z.string())), name: z.string(), symbol: z.string(), }), z.transform((v) => { return remap$(v, { baseCurrency: "base_currency", conversionRate: "conversion_rate", }); }), ); export function createPriceUnitRequestToJSON( createPriceUnitRequest: CreatePriceUnitRequest, ): string { return JSON.stringify( CreatePriceUnitRequest$outboundSchema.parse(createPriceUnitRequest), ); }