https://dev.kronoz.win/r/marzneshin.git
| 1 |
d377c4c |
Dawsh |
2y ago |
import { z } from 'zod'; |
| 2 |
e6e6467 |
Dawsh |
2y ago |
import { DATA_LIMIT_METRIC } from '@marzneshin/modules/users'; |
| 3 |
d377c4c |
Dawsh |
2y ago |
|
| 4 |
d377c4c |
Dawsh |
2y ago |
export const UserSchema = z.object({ |
| 5 |
d377c4c |
Dawsh |
2y ago |
username: z.string().min(1, { message: 'Username is required' }), |
| 6 |
d377c4c |
Dawsh |
2y ago |
note: z.string().nullable(), |
| 7 |
d377c4c |
Dawsh |
2y ago |
data_limit: z |
| 8 |
ce6bb64 |
Mardin |
2y ago |
.union([z.string().transform((str) => (Number(str))), z.number()]) |
| 9 |
d377c4c |
Dawsh |
2y ago |
.refine(val => val >= 0, { message: 'The minimum number is 0' }) |
| 10 |
e381b12 |
Mardin |
2y ago |
.transform((val) => (Math.round(val)) * DATA_LIMIT_METRIC) |
| 11 |
d377c4c |
Dawsh |
2y ago |
.nullable() |
| 12 |
d377c4c |
Dawsh |
2y ago |
.optional(), |
| 13 |
d377c4c |
Dawsh |
2y ago |
data_limit_reset_strategy: z |
| 14 |
d377c4c |
Dawsh |
2y ago |
.enum(["no_reset", "day", "week", "month", "year"]) |
| 15 |
d377c4c |
Dawsh |
2y ago |
.or(z.number()) |
| 16 |
d377c4c |
Dawsh |
2y ago |
.or(z.string()) |
| 17 |
d377c4c |
Dawsh |
2y ago |
.nullable().optional(), |
| 18 |
d377c4c |
Dawsh |
2y ago |
expire_strategy: z.enum(["never", "fixed_date", "start_on_first_use"]), |
| 19 |
d377c4c |
Dawsh |
2y ago |
usage_duration: z.number().nullable().optional(), |
| 20 |
d377c4c |
Dawsh |
2y ago |
activation_deadline: z |
| 21 |
d377c4c |
Dawsh |
2y ago |
.string() |
| 22 |
d377c4c |
Dawsh |
2y ago |
.or(z.date()) |
| 23 |
d377c4c |
Dawsh |
2y ago |
.nullable() |
| 24 |
d377c4c |
Dawsh |
2y ago |
.optional(), |
| 25 |
d377c4c |
Dawsh |
2y ago |
expire_date: z |
| 26 |
d377c4c |
Dawsh |
2y ago |
.string() |
| 27 |
d377c4c |
Dawsh |
2y ago |
.or(z.date()) |
| 28 |
d377c4c |
Dawsh |
2y ago |
.nullable() |
| 29 |
d377c4c |
Dawsh |
2y ago |
.optional(), |
| 30 |
d377c4c |
Dawsh |
2y ago |
service_ids: z |
| 31 |
d377c4c |
Dawsh |
2y ago |
.array(z.number().or(z.string())) |
| 32 |
d377c4c |
Dawsh |
2y ago |
.nonempty({ message: 'At least one service is required' }) |
| 33 |
d377c4c |
Dawsh |
2y ago |
.transform((v) => v.map(Number)), |
| 34 |
d377c4c |
Dawsh |
2y ago |
}); |
| 35 |
d377c4c |
Dawsh |
2y ago |
|
| 36 |
d377c4c |
Dawsh |
2y ago |
export type UserMutationType = z.infer<typeof UserSchema>; |