/* * 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 { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ProductPriceSeatTier, ProductPriceSeatTier$inboundSchema, ProductPriceSeatTier$Outbound, ProductPriceSeatTier$outboundSchema, } from "./productpriceseattier.js"; import { SeatTierType, SeatTierType$inboundSchema, SeatTierType$outboundSchema, } from "./seattiertype.js"; /** * 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) */ export type ProductPriceSeatTiersOutput = { seatTierType?: SeatTierType | undefined; /** * List of pricing tiers */ tiers: Array; /** * Minimum number of seats required for purchase, derived from first tier. */ minimumSeats: number; /** * Maximum number of seats allowed for purchase, derived from last tier. None for unlimited. */ maximumSeats: number | null; }; /** @internal */ export const ProductPriceSeatTiersOutput$inboundSchema: z.ZodMiniType< ProductPriceSeatTiersOutput, unknown > = z.pipe( z.object({ seat_tier_type: z.optional(SeatTierType$inboundSchema), tiers: z.array(ProductPriceSeatTier$inboundSchema), minimum_seats: z.int(), maximum_seats: z.nullable(z.int()), }), z.transform((v) => { return remap$(v, { "seat_tier_type": "seatTierType", "minimum_seats": "minimumSeats", "maximum_seats": "maximumSeats", }); }), ); /** @internal */ export type ProductPriceSeatTiersOutput$Outbound = { seat_tier_type?: string | undefined; tiers: Array; minimum_seats: number; maximum_seats: number | null; }; /** @internal */ export const ProductPriceSeatTiersOutput$outboundSchema: z.ZodMiniType< ProductPriceSeatTiersOutput$Outbound, ProductPriceSeatTiersOutput > = z.pipe( z.object({ seatTierType: z.optional(SeatTierType$outboundSchema), tiers: z.array(ProductPriceSeatTier$outboundSchema), minimumSeats: z.int(), maximumSeats: z.nullable(z.int()), }), z.transform((v) => { return remap$(v, { seatTierType: "seat_tier_type", minimumSeats: "minimum_seats", maximumSeats: "maximum_seats", }); }), ); export function productPriceSeatTiersOutputToJSON( productPriceSeatTiersOutput: ProductPriceSeatTiersOutput, ): string { return JSON.stringify( ProductPriceSeatTiersOutput$outboundSchema.parse( productPriceSeatTiersOutput, ), ); } export function productPriceSeatTiersOutputFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ProductPriceSeatTiersOutput$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ProductPriceSeatTiersOutput' from JSON`, ); }