/*
 * 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 { smartUnion } from "../../types/smartUnion.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";

export type MetricsTotalsActiveSubscriptions = number | number;

export type MetricsTotalsCommittedSubscriptions = number | number;

export type MetricsTotalsMonthlyRecurringRevenue = number | number;

export type MetricsTotalsTrialMonthlyRecurringRevenue = number | number;

export type MetricsTotalsCommittedMonthlyRecurringRevenue = number | number;

export type MetricsTotalsTrialCommittedMonthlyRecurringRevenue =
  | number
  | number;

export type MetricsTotalsAverageRevenuePerUser = number | number;

export type MetricsTotalsCheckouts = number | number;

export type MetricsTotalsSucceededCheckouts = number | number;

export type MetricsTotalsChurnedSubscriptions = number | number;

export type MetricsTotalsChurnRate = number | number;

export type MetricsTotalsSeatsTotal = number | number;

export type MetricsTotalsSeatsClaimed = number | number;

export type MetricsTotalsSeatsPending = number | number;

export type MetricsTotalsSeatCustomers = number | number;

export type MetricsTotalsNewSeatCustomers = number | number;

export type MetricsTotalsChurnedSeatCustomers = number | number;

export type MetricsTotalsOrders = number | number;

export type MetricsTotalsRevenue = number | number;

export type MetricsTotalsNetRevenue = number | number;

export type MetricsTotalsCumulativeRevenue = number | number;

export type MetricsTotalsNetCumulativeRevenue = number | number;

export type MetricsTotalsCosts = number | number;

export type MetricsTotalsCumulativeCosts = number | number;

export type MetricsTotalsAverageOrderValue = number | number;

export type MetricsTotalsNetAverageOrderValue = number | number;

export type MetricsTotalsCostPerUser = number | number;

export type MetricsTotalsActiveUserByEvent = number | number;

export type MetricsTotalsOneTimeProducts = number | number;

export type MetricsTotalsOneTimeProductsRevenue = number | number;

export type MetricsTotalsOneTimeProductsNetRevenue = number | number;

export type MetricsTotalsNewSubscriptions = number | number;

export type MetricsTotalsNewSubscriptionsRevenue = number | number;

export type MetricsTotalsNewSubscriptionsNetRevenue = number | number;

export type MetricsTotalsRenewedSubscriptions = number | number;

export type MetricsTotalsRenewedSubscriptionsRevenue = number | number;

export type MetricsTotalsRenewedSubscriptionsNetRevenue = number | number;

export type MetricsTotalsCanceledSubscriptions = number | number;

export type MetricsTotalsCanceledSubscriptionsCustomerService = number | number;

export type MetricsTotalsCanceledSubscriptionsLowQuality = number | number;

export type MetricsTotalsCanceledSubscriptionsMissingFeatures = number | number;

export type MetricsTotalsCanceledSubscriptionsSwitchedService = number | number;

export type MetricsTotalsCanceledSubscriptionsTooComplex = number | number;

export type MetricsTotalsCanceledSubscriptionsTooExpensive = number | number;

export type MetricsTotalsCanceledSubscriptionsUnused = number | number;

export type MetricsTotalsCanceledSubscriptionsOther = number | number;

export type MetricsTotalsAnnualRecurringRevenue = number | number;

export type MetricsTotalsCommittedAnnualRecurringRevenue = number | number;

export type MetricsTotalsCheckoutsConversion = number | number;

export type MetricsTotalsLtv = number | number;

export type MetricsTotalsGrossMargin = number | number;

export type MetricsTotalsGrossMarginPercentage = number | number;

export type MetricsTotalsCashflow = number | number;

export type MetricsTotalsAverageSeatsPerCustomer = number | number;

export type MetricsTotalsSeatUtilizationRate = number | number;

export type MetricsTotals = {
  activeSubscriptions?: number | number | null | undefined;
  committedSubscriptions?: number | number | null | undefined;
  monthlyRecurringRevenue?: number | number | null | undefined;
  trialMonthlyRecurringRevenue?: number | number | null | undefined;
  committedMonthlyRecurringRevenue?: number | number | null | undefined;
  trialCommittedMonthlyRecurringRevenue?: number | number | null | undefined;
  averageRevenuePerUser?: number | number | null | undefined;
  checkouts?: number | number | null | undefined;
  succeededCheckouts?: number | number | null | undefined;
  churnedSubscriptions?: number | number | null | undefined;
  churnRate?: number | number | null | undefined;
  seatsTotal?: number | number | null | undefined;
  seatsClaimed?: number | number | null | undefined;
  seatsPending?: number | number | null | undefined;
  seatCustomers?: number | number | null | undefined;
  newSeatCustomers?: number | number | null | undefined;
  churnedSeatCustomers?: number | number | null | undefined;
  orders?: number | number | null | undefined;
  revenue?: number | number | null | undefined;
  netRevenue?: number | number | null | undefined;
  cumulativeRevenue?: number | number | null | undefined;
  netCumulativeRevenue?: number | number | null | undefined;
  costs?: number | number | null | undefined;
  cumulativeCosts?: number | number | null | undefined;
  averageOrderValue?: number | number | null | undefined;
  netAverageOrderValue?: number | number | null | undefined;
  costPerUser?: number | number | null | undefined;
  activeUserByEvent?: number | number | null | undefined;
  oneTimeProducts?: number | number | null | undefined;
  oneTimeProductsRevenue?: number | number | null | undefined;
  oneTimeProductsNetRevenue?: number | number | null | undefined;
  newSubscriptions?: number | number | null | undefined;
  newSubscriptionsRevenue?: number | number | null | undefined;
  newSubscriptionsNetRevenue?: number | number | null | undefined;
  renewedSubscriptions?: number | number | null | undefined;
  renewedSubscriptionsRevenue?: number | number | null | undefined;
  renewedSubscriptionsNetRevenue?: number | number | null | undefined;
  canceledSubscriptions?: number | number | null | undefined;
  canceledSubscriptionsCustomerService?: number | number | null | undefined;
  canceledSubscriptionsLowQuality?: number | number | null | undefined;
  canceledSubscriptionsMissingFeatures?: number | number | null | undefined;
  canceledSubscriptionsSwitchedService?: number | number | null | undefined;
  canceledSubscriptionsTooComplex?: number | number | null | undefined;
  canceledSubscriptionsTooExpensive?: number | number | null | undefined;
  canceledSubscriptionsUnused?: number | number | null | undefined;
  canceledSubscriptionsOther?: number | number | null | undefined;
  annualRecurringRevenue?: number | number | null | undefined;
  committedAnnualRecurringRevenue?: number | number | null | undefined;
  checkoutsConversion?: number | number | null | undefined;
  ltv?: number | number | null | undefined;
  grossMargin?: number | number | null | undefined;
  grossMarginPercentage?: number | number | null | undefined;
  cashflow?: number | number | null | undefined;
  averageSeatsPerCustomer?: number | number | null | undefined;
  seatUtilizationRate?: number | number | null | undefined;
};

/** @internal */
export const MetricsTotalsActiveSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsActiveSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsActiveSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsActiveSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsActiveSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsActiveSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCommittedSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsCommittedSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCommittedSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCommittedSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCommittedSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCommittedSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsMonthlyRecurringRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsMonthlyRecurringRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsMonthlyRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsMonthlyRecurringRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsMonthlyRecurringRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsMonthlyRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsTrialMonthlyRecurringRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsTrialMonthlyRecurringRevenue, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsTrialMonthlyRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsTrialMonthlyRecurringRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsTrialMonthlyRecurringRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsTrialMonthlyRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCommittedMonthlyRecurringRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsCommittedMonthlyRecurringRevenue, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCommittedMonthlyRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCommittedMonthlyRecurringRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCommittedMonthlyRecurringRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCommittedMonthlyRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsTrialCommittedMonthlyRecurringRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsTrialCommittedMonthlyRecurringRevenue, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsTrialCommittedMonthlyRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsTrialCommittedMonthlyRecurringRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsTrialCommittedMonthlyRecurringRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsTrialCommittedMonthlyRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsAverageRevenuePerUser$inboundSchema: z.ZodMiniType<
  MetricsTotalsAverageRevenuePerUser,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsAverageRevenuePerUserFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsAverageRevenuePerUser, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsAverageRevenuePerUser$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsAverageRevenuePerUser' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCheckouts$inboundSchema: z.ZodMiniType<
  MetricsTotalsCheckouts,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCheckoutsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCheckouts, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCheckouts$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCheckouts' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSucceededCheckouts$inboundSchema: z.ZodMiniType<
  MetricsTotalsSucceededCheckouts,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSucceededCheckoutsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSucceededCheckouts, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSucceededCheckouts$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSucceededCheckouts' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsChurnedSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsChurnedSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsChurnedSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsChurnedSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsChurnedSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsChurnedSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsChurnRate$inboundSchema: z.ZodMiniType<
  MetricsTotalsChurnRate,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsChurnRateFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsChurnRate, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsChurnRate$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsChurnRate' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSeatsTotal$inboundSchema: z.ZodMiniType<
  MetricsTotalsSeatsTotal,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSeatsTotalFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSeatsTotal, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSeatsTotal$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSeatsTotal' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSeatsClaimed$inboundSchema: z.ZodMiniType<
  MetricsTotalsSeatsClaimed,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSeatsClaimedFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSeatsClaimed, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSeatsClaimed$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSeatsClaimed' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSeatsPending$inboundSchema: z.ZodMiniType<
  MetricsTotalsSeatsPending,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSeatsPendingFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSeatsPending, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSeatsPending$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSeatsPending' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSeatCustomers$inboundSchema: z.ZodMiniType<
  MetricsTotalsSeatCustomers,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSeatCustomersFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSeatCustomers, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSeatCustomers$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSeatCustomers' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNewSeatCustomers$inboundSchema: z.ZodMiniType<
  MetricsTotalsNewSeatCustomers,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNewSeatCustomersFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNewSeatCustomers, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsNewSeatCustomers$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNewSeatCustomers' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsChurnedSeatCustomers$inboundSchema: z.ZodMiniType<
  MetricsTotalsChurnedSeatCustomers,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsChurnedSeatCustomersFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsChurnedSeatCustomers, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsChurnedSeatCustomers$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsChurnedSeatCustomers' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsOrders$inboundSchema: z.ZodMiniType<
  MetricsTotalsOrders,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsOrdersFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsOrders, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsOrders$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsOrders' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNetRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsNetRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNetRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNetRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsNetRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNetRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCumulativeRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsCumulativeRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCumulativeRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCumulativeRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCumulativeRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCumulativeRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNetCumulativeRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsNetCumulativeRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNetCumulativeRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNetCumulativeRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsNetCumulativeRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNetCumulativeRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCosts$inboundSchema: z.ZodMiniType<
  MetricsTotalsCosts,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCostsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCosts, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCosts$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCosts' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCumulativeCosts$inboundSchema: z.ZodMiniType<
  MetricsTotalsCumulativeCosts,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCumulativeCostsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCumulativeCosts, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCumulativeCosts$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCumulativeCosts' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsAverageOrderValue$inboundSchema: z.ZodMiniType<
  MetricsTotalsAverageOrderValue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsAverageOrderValueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsAverageOrderValue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsAverageOrderValue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsAverageOrderValue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNetAverageOrderValue$inboundSchema: z.ZodMiniType<
  MetricsTotalsNetAverageOrderValue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNetAverageOrderValueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNetAverageOrderValue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsNetAverageOrderValue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNetAverageOrderValue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCostPerUser$inboundSchema: z.ZodMiniType<
  MetricsTotalsCostPerUser,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCostPerUserFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCostPerUser, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCostPerUser$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCostPerUser' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsActiveUserByEvent$inboundSchema: z.ZodMiniType<
  MetricsTotalsActiveUserByEvent,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsActiveUserByEventFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsActiveUserByEvent, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsActiveUserByEvent$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsActiveUserByEvent' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsOneTimeProducts$inboundSchema: z.ZodMiniType<
  MetricsTotalsOneTimeProducts,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsOneTimeProductsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsOneTimeProducts, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsOneTimeProducts$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsOneTimeProducts' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsOneTimeProductsRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsOneTimeProductsRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsOneTimeProductsRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsOneTimeProductsRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsOneTimeProductsRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsOneTimeProductsRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsOneTimeProductsNetRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsOneTimeProductsNetRevenue, unknown> = smartUnion([
    z.int(),
    z.number(),
  ]);

export function metricsTotalsOneTimeProductsNetRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsOneTimeProductsNetRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsOneTimeProductsNetRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsOneTimeProductsNetRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNewSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsNewSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNewSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNewSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsNewSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNewSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNewSubscriptionsRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsNewSubscriptionsRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsNewSubscriptionsRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsNewSubscriptionsRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsNewSubscriptionsRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsNewSubscriptionsRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsNewSubscriptionsNetRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsNewSubscriptionsNetRevenue, unknown> = smartUnion([
    z.int(),
    z.number(),
  ]);

export function metricsTotalsNewSubscriptionsNetRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsNewSubscriptionsNetRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsNewSubscriptionsNetRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsNewSubscriptionsNetRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsRenewedSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsRenewedSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsRenewedSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsRenewedSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsRenewedSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsRenewedSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsRenewedSubscriptionsRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsRenewedSubscriptionsRevenue, unknown> = smartUnion(
    [z.int(), z.number()],
  );

export function metricsTotalsRenewedSubscriptionsRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsRenewedSubscriptionsRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsRenewedSubscriptionsRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsRenewedSubscriptionsRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsRenewedSubscriptionsNetRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsRenewedSubscriptionsNetRevenue, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsRenewedSubscriptionsNetRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsRenewedSubscriptionsNetRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsRenewedSubscriptionsNetRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsRenewedSubscriptionsNetRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptions$inboundSchema: z.ZodMiniType<
  MetricsTotalsCanceledSubscriptions,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCanceledSubscriptions, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptions$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCanceledSubscriptions' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsCustomerService$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsCustomerService, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsCustomerServiceFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsCustomerService,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsCustomerService$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsCustomerService' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsLowQuality$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsLowQuality, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsLowQualityFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsLowQuality,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsLowQuality$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsLowQuality' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsMissingFeatures$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsMissingFeatures, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsMissingFeaturesFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsMissingFeatures,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsMissingFeatures$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsMissingFeatures' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsSwitchedService$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsSwitchedService, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsSwitchedServiceFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsSwitchedService,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsSwitchedService$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsSwitchedService' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsTooComplex$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsTooComplex, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsTooComplexFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsTooComplex,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsTooComplex$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsTooComplex' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsTooExpensive$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsTooExpensive, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCanceledSubscriptionsTooExpensiveFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsTooExpensive,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsTooExpensive$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsTooExpensive' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsUnused$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsUnused, unknown> = smartUnion(
    [z.int(), z.number()],
  );

export function metricsTotalsCanceledSubscriptionsUnusedFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsUnused,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsUnused$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsUnused' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCanceledSubscriptionsOther$inboundSchema:
  z.ZodMiniType<MetricsTotalsCanceledSubscriptionsOther, unknown> = smartUnion([
    z.int(),
    z.number(),
  ]);

export function metricsTotalsCanceledSubscriptionsOtherFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCanceledSubscriptionsOther,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCanceledSubscriptionsOther$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCanceledSubscriptionsOther' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsAnnualRecurringRevenue$inboundSchema: z.ZodMiniType<
  MetricsTotalsAnnualRecurringRevenue,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsAnnualRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsAnnualRecurringRevenue, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsAnnualRecurringRevenue$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsAnnualRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCommittedAnnualRecurringRevenue$inboundSchema:
  z.ZodMiniType<MetricsTotalsCommittedAnnualRecurringRevenue, unknown> =
    smartUnion([z.int(), z.number()]);

export function metricsTotalsCommittedAnnualRecurringRevenueFromJSON(
  jsonString: string,
): SafeParseResult<
  MetricsTotalsCommittedAnnualRecurringRevenue,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsCommittedAnnualRecurringRevenue$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'MetricsTotalsCommittedAnnualRecurringRevenue' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCheckoutsConversion$inboundSchema: z.ZodMiniType<
  MetricsTotalsCheckoutsConversion,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCheckoutsConversionFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCheckoutsConversion, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCheckoutsConversion$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCheckoutsConversion' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsLtv$inboundSchema: z.ZodMiniType<
  MetricsTotalsLtv,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsLtvFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsLtv, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsLtv$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsLtv' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsGrossMargin$inboundSchema: z.ZodMiniType<
  MetricsTotalsGrossMargin,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsGrossMarginFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsGrossMargin, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsGrossMargin$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsGrossMargin' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsGrossMarginPercentage$inboundSchema: z.ZodMiniType<
  MetricsTotalsGrossMarginPercentage,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsGrossMarginPercentageFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsGrossMarginPercentage, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsGrossMarginPercentage$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsGrossMarginPercentage' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsCashflow$inboundSchema: z.ZodMiniType<
  MetricsTotalsCashflow,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsCashflowFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsCashflow, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsCashflow$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsCashflow' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsAverageSeatsPerCustomer$inboundSchema: z.ZodMiniType<
  MetricsTotalsAverageSeatsPerCustomer,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsAverageSeatsPerCustomerFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsAverageSeatsPerCustomer, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      MetricsTotalsAverageSeatsPerCustomer$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsAverageSeatsPerCustomer' from JSON`,
  );
}

/** @internal */
export const MetricsTotalsSeatUtilizationRate$inboundSchema: z.ZodMiniType<
  MetricsTotalsSeatUtilizationRate,
  unknown
> = smartUnion([z.int(), z.number()]);

export function metricsTotalsSeatUtilizationRateFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotalsSeatUtilizationRate, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotalsSeatUtilizationRate$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotalsSeatUtilizationRate' from JSON`,
  );
}

/** @internal */
export const MetricsTotals$inboundSchema: z.ZodMiniType<
  MetricsTotals,
  unknown
> = z.pipe(
  z.object({
    active_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    committed_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    monthly_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    trial_monthly_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    committed_monthly_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    trial_committed_monthly_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    average_revenue_per_user: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    checkouts: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    succeeded_checkouts: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    churned_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    churn_rate: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    seats_total: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    seats_claimed: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    seats_pending: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    seat_customers: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    new_seat_customers: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    churned_seat_customers: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    orders: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    revenue: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    net_revenue: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    cumulative_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    net_cumulative_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    costs: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    cumulative_costs: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    average_order_value: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    net_average_order_value: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    cost_per_user: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    active_user_by_event: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    one_time_products: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    one_time_products_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    one_time_products_net_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    new_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    new_subscriptions_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    new_subscriptions_net_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    renewed_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    renewed_subscriptions_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    renewed_subscriptions_net_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_customer_service: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_low_quality: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_missing_features: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_switched_service: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_too_complex: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_too_expensive: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_unused: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    canceled_subscriptions_other: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    annual_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    committed_annual_recurring_revenue: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    checkouts_conversion: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    ltv: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    gross_margin: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    gross_margin_percentage: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    cashflow: z.optional(z.nullable(smartUnion([z.int(), z.number()]))),
    average_seats_per_customer: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
    seat_utilization_rate: z.optional(
      z.nullable(smartUnion([z.int(), z.number()])),
    ),
  }),
  z.transform((v) => {
    return remap$(v, {
      "active_subscriptions": "activeSubscriptions",
      "committed_subscriptions": "committedSubscriptions",
      "monthly_recurring_revenue": "monthlyRecurringRevenue",
      "trial_monthly_recurring_revenue": "trialMonthlyRecurringRevenue",
      "committed_monthly_recurring_revenue": "committedMonthlyRecurringRevenue",
      "trial_committed_monthly_recurring_revenue":
        "trialCommittedMonthlyRecurringRevenue",
      "average_revenue_per_user": "averageRevenuePerUser",
      "succeeded_checkouts": "succeededCheckouts",
      "churned_subscriptions": "churnedSubscriptions",
      "churn_rate": "churnRate",
      "seats_total": "seatsTotal",
      "seats_claimed": "seatsClaimed",
      "seats_pending": "seatsPending",
      "seat_customers": "seatCustomers",
      "new_seat_customers": "newSeatCustomers",
      "churned_seat_customers": "churnedSeatCustomers",
      "net_revenue": "netRevenue",
      "cumulative_revenue": "cumulativeRevenue",
      "net_cumulative_revenue": "netCumulativeRevenue",
      "cumulative_costs": "cumulativeCosts",
      "average_order_value": "averageOrderValue",
      "net_average_order_value": "netAverageOrderValue",
      "cost_per_user": "costPerUser",
      "active_user_by_event": "activeUserByEvent",
      "one_time_products": "oneTimeProducts",
      "one_time_products_revenue": "oneTimeProductsRevenue",
      "one_time_products_net_revenue": "oneTimeProductsNetRevenue",
      "new_subscriptions": "newSubscriptions",
      "new_subscriptions_revenue": "newSubscriptionsRevenue",
      "new_subscriptions_net_revenue": "newSubscriptionsNetRevenue",
      "renewed_subscriptions": "renewedSubscriptions",
      "renewed_subscriptions_revenue": "renewedSubscriptionsRevenue",
      "renewed_subscriptions_net_revenue": "renewedSubscriptionsNetRevenue",
      "canceled_subscriptions": "canceledSubscriptions",
      "canceled_subscriptions_customer_service":
        "canceledSubscriptionsCustomerService",
      "canceled_subscriptions_low_quality": "canceledSubscriptionsLowQuality",
      "canceled_subscriptions_missing_features":
        "canceledSubscriptionsMissingFeatures",
      "canceled_subscriptions_switched_service":
        "canceledSubscriptionsSwitchedService",
      "canceled_subscriptions_too_complex": "canceledSubscriptionsTooComplex",
      "canceled_subscriptions_too_expensive":
        "canceledSubscriptionsTooExpensive",
      "canceled_subscriptions_unused": "canceledSubscriptionsUnused",
      "canceled_subscriptions_other": "canceledSubscriptionsOther",
      "annual_recurring_revenue": "annualRecurringRevenue",
      "committed_annual_recurring_revenue": "committedAnnualRecurringRevenue",
      "checkouts_conversion": "checkoutsConversion",
      "gross_margin": "grossMargin",
      "gross_margin_percentage": "grossMarginPercentage",
      "average_seats_per_customer": "averageSeatsPerCustomer",
      "seat_utilization_rate": "seatUtilizationRate",
    });
  }),
);

export function metricsTotalsFromJSON(
  jsonString: string,
): SafeParseResult<MetricsTotals, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => MetricsTotals$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'MetricsTotals' from JSON`,
  );
}
