import { z } from "zod";

const templateValue = z.union([
  z.string().max(10_000),
  z.number().finite(),
  z.boolean(),
]);

export const dynamicDocumentQuerySchema = z.object({
  cos: z.coerce.number().int().positive(),
  signataireId: z.preprocess(
    (value) => (value === "" || value == null ? null : value),
    z.coerce.number().int().positive().nullable(),
  ),
});

export const dynamicDocumentGenerationSchema = z.object({
  cos: z.coerce.number().int().positive(),
  signataireId: z.number().int().positive().nullable().optional(),
  values: z.record(z.string().min(1).max(100), templateValue),
});
