import { z } from 'zod'; /** Espelha `LoginDto` do backend (`src/modules/auth/dto/login.dto.ts`). */ export const loginSchema = z.object({ email: z.email('E-mail inválido').min(1, 'Informe o e-mail'), senha: z.string().min(1, 'Informe a senha'), }); export type LoginFormValues = z.infer; /** Espelha `ForgotPasswordDto`. */ export const forgotPasswordSchema = z.object({ email: z.email('E-mail inválido').min(1, 'Informe o e-mail'), }); export type ForgotPasswordFormValues = z.infer; /** * Espelha `ResetPasswordDto` — mínimo de 10 caracteres * (`src/modules/auth/password.util.ts`, `MIN_LENGTH`). A lista de senhas * trivialmente fracas é bloqueada só no backend (não duplicada aqui); o * erro retornado por lá já é claro o bastante para mostrar direto. */ export const resetPasswordSchema = z .object({ novaSenha: z.string().min(10, 'A senha precisa ter no mínimo 10 caracteres'), confirmarSenha: z.string().min(1, 'Confirme a nova senha'), }) .refine((data) => data.novaSenha === data.confirmarSenha, { message: 'As senhas não coincidem', path: ['confirmarSenha'], }); export type ResetPasswordFormValues = z.infer;