/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import * as z from "zod/v4-mini";
import { smartUnion } from "../../types/smartUnion.js";
import {
  CheckoutLinkCreateProduct,
  CheckoutLinkCreateProduct$Outbound,
  CheckoutLinkCreateProduct$outboundSchema,
} from "./checkoutlinkcreateproduct.js";
import {
  CheckoutLinkCreateProductPrice,
  CheckoutLinkCreateProductPrice$Outbound,
  CheckoutLinkCreateProductPrice$outboundSchema,
} from "./checkoutlinkcreateproductprice.js";
import {
  CheckoutLinkCreateProducts,
  CheckoutLinkCreateProducts$Outbound,
  CheckoutLinkCreateProducts$outboundSchema,
} from "./checkoutlinkcreateproducts.js";

export type CheckoutLinkCreate =
  | CheckoutLinkCreateProductPrice
  | CheckoutLinkCreateProduct
  | CheckoutLinkCreateProducts;

/** @internal */
export type CheckoutLinkCreate$Outbound =
  | CheckoutLinkCreateProductPrice$Outbound
  | CheckoutLinkCreateProduct$Outbound
  | CheckoutLinkCreateProducts$Outbound;

/** @internal */
export const CheckoutLinkCreate$outboundSchema: z.ZodMiniType<
  CheckoutLinkCreate$Outbound,
  CheckoutLinkCreate
> = smartUnion([
  CheckoutLinkCreateProductPrice$outboundSchema,
  CheckoutLinkCreateProduct$outboundSchema,
  CheckoutLinkCreateProducts$outboundSchema,
]);

export function checkoutLinkCreateToJSON(
  checkoutLinkCreate: CheckoutLinkCreate,
): string {
  return JSON.stringify(
    CheckoutLinkCreate$outboundSchema.parse(checkoutLinkCreate),
  );
}
