import { z } from "zod";
import { RELANCE_TONES } from "../constants/index.js";

export const relanceToneSchema = z.enum(RELANCE_TONES);

export const planStepSchema = z.object({
  order: z.number().int().min(0),
  offsetDays: z
    .number()
    .int()
    .min(-30, "Pas plus de 30j avant échéance")
    .max(180, "Pas plus de 180j après échéance"),
  tone: relanceToneSchema,
  subject: z.string().min(1, "Sujet requis").max(200),
  body: z.string().min(1, "Corps requis").max(5000),
  requiresManualValidation: z.boolean(),
});

export const createPlanSchema = z.object({
  name: z.string().min(1, "Nom du plan requis").max(80),
  description: z.string().max(500).default(""),
  steps: z
    .array(planStepSchema)
    .min(1, "Au moins une étape")
    .max(10, "Pas plus de 10 étapes — on reste raisonnable"),
});

export const updatePlanSchema = createPlanSchema.partial();

export type CreatePlanInput = z.infer<typeof createPlanSchema>;
export type UpdatePlanInput = z.infer<typeof updatePlanSchema>;
export type PlanStepInput = z.infer<typeof planStepSchema>;
