import { z } from "zod";

export const documentTemplateMetadataSchema = z.object({
  templateId: z.coerce.number().int().positive().optional(),
  code: z
    .string()
    .trim()
    .min(2)
    .max(100)
    .regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/),
  libelle: z.string().trim().min(2).max(255),
  description: z.string().trim().max(5000).optional().default(""),
  categorie: z.string().trim().min(2).max(100),
  etablissement: z.string().trim().max(150).optional().default(""),
});

export const documentTemplateActivationSchema = z.object({
  templateId: z.coerce.number().int().positive(),
  version: z.coerce.number().int().positive(),
  actif: z.boolean(),
  previewConfirmed: z.boolean().default(false),
}).superRefine((value, context) => {
  if (value.actif && !value.previewConfirmed) {
    context.addIssue({
      code: "custom",
      path: ["previewConfirmed"],
      message: "L'aperçu doit être confirmé avant activation.",
    });
  }
});
