diff options
| author | zwlucas <lucas.fariamo08@gmail.com> | 2026-07-25 21:23:29 +0000 |
|---|---|---|
| committer | zwlucas <lucas.fariamo08@gmail.com> | 2026-07-25 21:23:29 +0000 |
| commit | ef55d9bb24430610b60c1b77821307cd72c08c55 (patch) | |
| tree | e6935a810b34370b0a4c821e55f6397aac50c832 /api/src/modules/users/users.schema.ts | |
| download | helpdesk-master.tar.gz helpdesk-master.zip | |
Signed-off-by: zwlucas <lucas.fariamo08@gmail.com>
Diffstat (limited to 'api/src/modules/users/users.schema.ts')
| -rw-r--r-- | api/src/modules/users/users.schema.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/api/src/modules/users/users.schema.ts b/api/src/modules/users/users.schema.ts new file mode 100644 index 0000000..ff3f459 --- /dev/null +++ b/api/src/modules/users/users.schema.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +import { USER_ROLES } from '@/db/schema.js'; + +export const createUserByAdminBodySchema = z.object({ + name: z.string().min(2).max(100).trim(), + email: z.string().email().toLowerCase().trim(), + password: z.string().min(8).max(100), + role: z.enum(USER_ROLES), +}); + +export type CreateUserByAdminBody = z.infer<typeof createUserByAdminBodySchema>; + +export const updateUserBodySchema = z.object({ + name: z.string().min(2).max(100).trim().optional(), + email: z.string().email().toLowerCase().trim().optional(), + password: z.string().min(8).max(100).optional().or(z.literal('')), + role: z.enum(USER_ROLES).optional(), + isActive: z.boolean().optional(), +}); + +export type UpdateUserBody = z.infer<typeof updateUserBodySchema>; + +export const userIdParamsSchema = z.object({ + id: z.coerce.number().positive(), +}); |