import { z } from 'zod'; import { CANAIS_TEMPLATE, TIPOS_TEMPLATE } from '@/lib/api/alert-templates'; /** * Espelha `CreateMasterAlertTemplateDto` — `assunto` é obrigatório só para * `canal: 'email'` (mesmo `@ValidateIf` do backend), daí o `.refine` no * objeto inteiro em vez de no campo isolado. */ export const alertTemplateSchema = z .object({ tipo: z.enum(TIPOS_TEMPLATE, 'Selecione um tipo'), canal: z.enum(CANAIS_TEMPLATE, 'Selecione um canal'), assunto: z.string().optional(), corpo: z.string().min(1, 'Informe o corpo da mensagem'), ativo: z.boolean(), }) .refine((data) => data.canal !== 'email' || (data.assunto?.trim().length ?? 0) > 0, { message: 'Assunto é obrigatório para templates de e-mail', path: ['assunto'], }); export type AlertTemplateFormValues = z.infer;