/* * 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 { PresentmentCurrency, PresentmentCurrency$outboundSchema, } from "./presentmentcurrency.js"; import { ProductPriceSeatTiersInput, ProductPriceSeatTiersInput$Outbound, ProductPriceSeatTiersInput$outboundSchema, } from "./productpriceseattiersinput.js"; import { TaxBehaviorOption, TaxBehaviorOption$outboundSchema, } from "./taxbehavioroption.js"; /** * Schema to create a seat-based price with volume-based tiers. */ export type ProductPriceSeatBasedCreate = { amountType: "seat_based"; priceCurrency?: PresentmentCurrency | undefined; /** * The tax behavior of the price. If not set, it will default to the organization's default tax behavior. */ taxBehavior?: TaxBehaviorOption | null | undefined; /** * List of pricing tiers for seat-based pricing. * * @remarks * * The minimum and maximum seat limits are derived from the tiers: * - minimum_seats = first tier's min_seats * - maximum_seats = last tier's max_seats (None for unlimited) */ seatTiers: ProductPriceSeatTiersInput; }; /** @internal */ export type ProductPriceSeatBasedCreate$Outbound = { amount_type: "seat_based"; price_currency?: string | undefined; tax_behavior?: string | null | undefined; seat_tiers: ProductPriceSeatTiersInput$Outbound; }; /** @internal */ export const ProductPriceSeatBasedCreate$outboundSchema: z.ZodMiniType< ProductPriceSeatBasedCreate$Outbound, ProductPriceSeatBasedCreate > = z.pipe( z.object({ amountType: z.literal("seat_based"), priceCurrency: z.optional(PresentmentCurrency$outboundSchema), taxBehavior: z.optional(z.nullable(TaxBehaviorOption$outboundSchema)), seatTiers: ProductPriceSeatTiersInput$outboundSchema, }), z.transform((v) => { return remap$(v, { amountType: "amount_type", priceCurrency: "price_currency", taxBehavior: "tax_behavior", seatTiers: "seat_tiers", }); }), ); export function productPriceSeatBasedCreateToJSON( productPriceSeatBasedCreate: ProductPriceSeatBasedCreate, ): string { return JSON.stringify( ProductPriceSeatBasedCreate$outboundSchema.parse( productPriceSeatBasedCreate, ), ); }