gitscope
https://dev.kronoz.win/r/marzneshin.git
app/dashboard/src/pages/hosts/users/dialog/form-schema.ts · v0.1.0
Source
1 6aab6f0 Mrdn 2y ago
2 6aab6f0 Mrdn 2y ago import { z } from 'zod';
3 6aab6f0 Mrdn 2y ago import { UserCreate } from 'types';
4 6aab6f0 Mrdn 2y ago
5 6aab6f0 Mrdn 2y ago export type FormType = Pick<UserCreate, keyof UserCreate>;
6 6aab6f0 Mrdn 2y ago export const schema = z.object({
7 6aab6f0 Mrdn 2y ago username: z.string().min(1, { message: 'Username is required' }),
8 6aab6f0 Mrdn 2y ago note: z.string().nullable(),
9 6aab6f0 Mrdn 2y ago data_limit: z
10 6aab6f0 Mrdn 2y ago .string()
11 6aab6f0 Mrdn 2y ago .min(0, 'The minimum number is 0')
12 6aab6f0 Mrdn 2y ago .or(z.number())
13 6aab6f0 Mrdn 2y ago .nullable()
14 6aab6f0 Mrdn 2y ago .transform((str) => {
15 6aab6f0 Mrdn 2y ago if (str) return Number((parseFloat(String(str)) * 1073741824).toFixed(5));
16 6aab6f0 Mrdn 2y ago return 0;
17 6aab6f0 Mrdn 2y ago }),
18 6aab6f0 Mrdn 2y ago expire: z.number().nullable(),
19 6aab6f0 Mrdn 2y ago data_limit_reset_strategy: z.string(),
20 6aab6f0 Mrdn 2y ago status: z.string(),
21 6aab6f0 Mrdn 2y ago services: z.array(z.number()).nonempty({ message: 'At least one service is required' }),
22 6aab6f0 Mrdn 2y ago });