/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 * @generated-id: 23ff5a1759df
 */

import * as z from "zod/v4";
import { remap as remap$ } from "../../lib/primitives.js";

export type ModerationLlmv1CategoryThresholds = {
  sexual?: number | null | undefined;
  hateAndDiscrimination?: number | null | undefined;
  violenceAndThreats?: number | null | undefined;
  dangerousAndCriminalContent?: number | null | undefined;
  selfharm?: number | null | undefined;
  health?: number | null | undefined;
  financial?: number | null | undefined;
  law?: number | null | undefined;
  pii?: number | null | undefined;
};

/** @internal */
export type ModerationLlmv1CategoryThresholds$Outbound = {
  sexual?: number | null | undefined;
  hate_and_discrimination?: number | null | undefined;
  violence_and_threats?: number | null | undefined;
  dangerous_and_criminal_content?: number | null | undefined;
  selfharm?: number | null | undefined;
  health?: number | null | undefined;
  financial?: number | null | undefined;
  law?: number | null | undefined;
  pii?: number | null | undefined;
};

/** @internal */
export const ModerationLlmv1CategoryThresholds$outboundSchema: z.ZodType<
  ModerationLlmv1CategoryThresholds$Outbound,
  ModerationLlmv1CategoryThresholds
> = z.object({
  sexual: z.nullable(z.number()).optional(),
  hateAndDiscrimination: z.nullable(z.number()).optional(),
  violenceAndThreats: z.nullable(z.number()).optional(),
  dangerousAndCriminalContent: z.nullable(z.number()).optional(),
  selfharm: z.nullable(z.number()).optional(),
  health: z.nullable(z.number()).optional(),
  financial: z.nullable(z.number()).optional(),
  law: z.nullable(z.number()).optional(),
  pii: z.nullable(z.number()).optional(),
}).transform((v) => {
  return remap$(v, {
    hateAndDiscrimination: "hate_and_discrimination",
    violenceAndThreats: "violence_and_threats",
    dangerousAndCriminalContent: "dangerous_and_criminal_content",
  });
});

export function moderationLlmv1CategoryThresholdsToJSON(
  moderationLlmv1CategoryThresholds: ModerationLlmv1CategoryThresholds,
): string {
  return JSON.stringify(
    ModerationLlmv1CategoryThresholds$outboundSchema.parse(
      moderationLlmv1CategoryThresholds,
    ),
  );
}
