import { m } from '@/paraglide/messages'; import z from 'zod'; export const userListSchema = z.object({ page: z.coerce.number().min(1).default(1), limit: z.coerce.number().min(10).max(100).default(10), keyword: z.string().optional(), }); export const userSetPasswordSchema = z.object({ id: z.string().nonempty(m.users_page_message_user_not_found()), password: z .string() .min(5, m.users_page_message_user_min()) .regex(/[A-Z]/, m.users_page_message_contain_uppercase()) .regex(/[a-z]/, m.users_page_message_contain_lowercase()) .regex(/[0-9]/, m.users_page_message_contain_number()) .regex(/[^a-zA-Z0-9]/, m.users_page_message_contain_special()), }); export const userUpdateInfoSchema = z.object({ id: z.string().nonempty(m.users_page_message_user_not_found()), name: z.string().nonempty( m.common_is_required({ field: m.profile_form_name(), }), ), }); export const RoleEnum = z.enum(['admin', 'user']); export const userUpdateRoleSchema = z.object({ id: z.string().nonempty(m.users_page_message_user_not_found()), role: RoleEnum, }); export const userBanSchema = z.object({ id: z.string().nonempty(m.users_page_message_user_not_found()), banReason: z.string().nonempty( m.common_is_required({ field: m.users_page_ui_form_ban_reason(), }), ), banExp: z.number().int().min(1, m.users_page_message_select_min_one_day()), });