import { z } from "zod";

const normalizedEmail = z
  .string()
  .trim()
  .email("Adresse e-mail invalide")
  .max(255)
  .transform((value) => value.toLowerCase());

export const procedureRhRecipientCreateSchema = z.object({
  label: z.string().trim().min(1).max(150),
  email: normalizedEmail,
});

export const procedureRhRecipientUpdateSchema = z
  .object({
    label: z.string().trim().min(1).max(150).optional(),
    email: normalizedEmail.optional(),
    isActive: z.boolean().optional(),
  })
  .refine((value) => Object.keys(value).length > 0, {
    message: "Aucune modification fournie",
  });

export const procedureRhSendSchema = z.object({
  recipientId: z.coerce.number().int().positive(),
});

export type ProcedureRhRecipientCreateInput = z.infer<
  typeof procedureRhRecipientCreateSchema
>;

export type ProcedureRhRecipientUpdateInput = z.infer<
  typeof procedureRhRecipientUpdateSchema
>;
