/*
 * 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 {
  OrderUpdate,
  OrderUpdate$Outbound,
  OrderUpdate$outboundSchema,
} from "../components/orderupdate.js";

export type OrdersUpdateRequest = {
  /**
   * The order ID.
   */
  id: string;
  orderUpdate: OrderUpdate;
};

/** @internal */
export type OrdersUpdateRequest$Outbound = {
  id: string;
  OrderUpdate: OrderUpdate$Outbound;
};

/** @internal */
export const OrdersUpdateRequest$outboundSchema: z.ZodMiniType<
  OrdersUpdateRequest$Outbound,
  OrdersUpdateRequest
> = z.pipe(
  z.object({
    id: z.string(),
    orderUpdate: OrderUpdate$outboundSchema,
  }),
  z.transform((v) => {
    return remap$(v, {
      orderUpdate: "OrderUpdate",
    });
  }),
);

export function ordersUpdateRequestToJSON(
  ordersUpdateRequest: OrdersUpdateRequest,
): string {
  return JSON.stringify(
    OrdersUpdateRequest$outboundSchema.parse(ordersUpdateRequest),
  );
}
