gitscope
← marzneshin / v0.3.0-alpha9 / dashboard/src/features/users/dialogs/mutation/schema.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/dialogs/mutation/schema.ts · TypeScript
Blame Raw
 1import { z } from 'zod';
 2
 3export const UserSchema = z.object({
 4    username: z.string().min(1, { message: 'Username is required' }),
 5    note: z.string().nullable(),
 6    data_limit: z
 7        .string()
 8        .min(0, 'The minimum number is 0')
 9        .or(z.number())
10        .nullable()
11        .optional()
12        .transform((str) => {
13            if (str) return Number((parseFloat(String(str)) * 1073741824).toFixed(5));
14            return 0;
15        }),
16    expire: z.string().or(z.number()).nullable().optional(),
17    data_limit_reset_strategy: z.string().nullable().optional(),
18    status: z.string(),
19    on_hold_expire_duration: z.number().nullable().optional(),
20    on_hold_timeout: z.string().nullable().optional(),
21    services: z.array(z.number().or(z.string())).nonempty({ message: 'At least one service is required' })
22        .transform((v) => v.map(Number)),
23});