import { z } from 'zod'; import { uniqueEmailValidator, uniqueUsernameValidator } from './service'; export const createUserSchema = z.object({ username: z .string() .min(4, '用户名必须至少4个字符') .max(30, '用户名最多12个字符') .refine(uniqueUsernameValidator, '用户名已存在'), email: z.string().email().refine(uniqueEmailValidator, '邮箱已存在'), password: z.string().min(8, '密码必须至少8个字符').max(255, '密码最多255个字符'), }); export const authLoginRequestSchema = z.object({ credential: z.string().min(4, '用户名必须至少4个字符').max(30, '用户名最多12个字符'), password: z .string() .min(8, '密码必须至少8个字符') .refine((val) => /[A-Z]/.test(val), { message: '密码必须至少包含一个大写字母' }), }); export const authLoginResponseSchema = z.object({ token: z.string(), }); export const authItemSchema = z.object({ id: z.string(), username: z.string(), email: z.string().email(), createdAt: z.coerce.date(), updatedAt: z.coerce.date(), });