import { z } from 'zod' export const loginAccountSchema = z.object({ username: z .string() .min(3, { message: 'Name must be at least 3 characters long' }) .max(255, { message: 'Name must be at most 255 characters long' }) .regex(/^[A-Za-z][A-Za-z0-9_-]*$/, { message: 'Name must start with a letter and can only contain letters, numbers, underscores, or dashes' }), password: z .string() .min(8, { message: 'Password must be at least 8 characters long' }) .max(255) }) export const registerAccountSchema = z.object({ username: z .string() .min(3, { message: 'Name must be at least 3 characters long' }) .max(255, { message: 'Name must be at most 255 characters long' }) .regex(/^[A-Za-z][A-Za-z0-9_-]*$/, { message: 'Name must start with a letter and can only contain letters, numbers, underscores, or dashes' }), email: z .string() .min(3, { message: 'Email must be at least 3 characters long' }) .max(255, { message: 'Email must be at most 255 characters long' }) .regex(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, { message: 'Email must be valid' }), password: z .string() .min(8, { message: 'Password must be at least 8 characters long' }) .max(255) }) export const resetPasswordSchema = z.object({ email: z .string() .min(3, { message: 'Email must be at least 3 characters long' }) .max(255, { message: 'Email must be at most 255 characters long' }) .regex(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, { message: 'Email must be valid' }) }) export const newPasswordSchema = z.object({ urlToken: z.string().min(10, { message: 'Invalid request' }).max(255, { message: 'Invalid request' }), password: z .string() .min(8, { message: 'Password must be at least 8 characters long' }) .max(255) }) export const ZCharacterCreate = z.object({ name: z .string() .min(3, { message: 'Name must be at least 3 characters long' }) .max(255, { message: 'Name must be at most 255 characters long' }) .regex(/^[A-Za-z][A-Za-z0-9_-]*$/, { message: 'Name must start with a letter and can only contain letters, numbers, underscores, or dashes' }) })