import { z } from 'zod'; export const loginSchema = z.object({ pseudo: z.string() .trim() .min(1, { message: "Nom d'utilisateur requis" }), passwd: z.string() .trim() .min(1, { message: 'Mot de passe requis' }), }); export const registerSchema = z.object({ email: z .string() .trim() .max(64, { message: 'Email trop long (max 64 caractères)' }) .email({ message: 'Email invalide' }), firstname: z.string() .trim().min(1, { message: "Prénom requis" }), lastname: z.string() .trim().min(1, { message: "Nom requis" }), pseudo: z.string().trim().min(1, { message: "Nom d'utilisateur requis" }), }); export const registerConfirmationSchema = z.object({ email: z .string() .trim() .max(64, { message: 'Email trop long (max 64 caractères)' }) .email({ message: 'Email invalide' }), firstname: z.string() .trim() .min(1, { message: "Prénom requis" }), lastname: z.string() .trim() .min(1, { message: "Nom requis" }), pseudo: z.string().trim().min(1, { message: "Nom d'utilisateur requis" }), passwd: z.string() .trim() .min(1, { message: 'Mot de passe requis' }), confirm: z.string() .trim() .min(1, { message: 'Confirmation du mot de passe requise' }), code: z.string() .trim() .regex(/^[0-9]{4}$/, { message: 'Code invalide, il doit contenir 4 chiffres' }) }).refine((data) => data.passwd == data.confirm, { message: 'Les mots de passe ne correspondent pas', path: ['confirm'] }); export const requestPasswordResetSchema = z.object({ email: z.string() .trim() .max(64, { message: 'Email trop long (max 64 caractères)' }) .email({ message: 'Email invalide' }), }); export const resetPasswordSchema = z.object({ email: z.string() .trim() .max(64, { message: 'Email trop long (max 64 caractères)' }) .email({ message: 'Email invalide' }), password: z.string() .trim() .min(1, { message: 'Mot de passe requis' }), confirm: z.string() .trim() .min(1, { message: 'Confirmation du mot de passe requise' }), code: z.string() .regex(/^[0-9]{4}$/, { message: 'Code invalide, il doit contenir 4 chiffres' }), }).refine((data) => data.password == data.confirm, { message: 'Les mots de passe ne correspondent pas', path: ['confirm'] }); export const settingSchema = z.object({ firstname: z.string().trim().min(1, { message: "Prénom requis" }), lastname: z.string().trim().min(1, { message: "Nom requis" }), pseudo: z.string().trim().min(1, { message: "Nom d'utilisateur requis" }), });