import { z } from "zod"; export const userFormSchema = z.object({ username: z.string().min(1, "Username is required").min(3, "Username must be at least 3 characters"), email: z.string().email("Invalid email address"), firstName: z.string().min(1, "First name is required"), lastName: z.string().min(1, "Last name is required"), password: z.string().min(6, "Password must be at least 6 characters"), confirmPassword: z.string().min(6, "Confirm password must be at least 6 characters"), }).refine((data) => data.password === data.confirmPassword, { message: "Passwords don't match", path: ["confirmPassword"], }); export const userEditFormSchema = z.object({ username: z.string().min(1, "Username is required").min(3, "Username must be at least 3 characters"), email: z.string().email("Invalid email address"), firstName: z.string().min(1, "First name is required"), lastName: z.string().min(1, "Last name is required"), password: z.string().optional(), confirmPassword: z.string().optional(), }).refine((data) => { if (data.password && data.password.length > 0) { return data.password.length >= 6; } return true; }, { message: "Password must be at least 6 characters", path: ["password"], }).refine((data) => { if (data.password && data.password.length > 0) { return data.password === data.confirmPassword; } return true; }, { message: "Passwords don't match", path: ["confirmPassword"], }); export type UserForm = z.infer; export type UserEditForm = z.infer;