diff options
Diffstat (limited to 'lib/admin-users/validations.ts')
| -rw-r--r-- | lib/admin-users/validations.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/admin-users/validations.ts b/lib/admin-users/validations.ts index e505067d..3c2fdb9c 100644 --- a/lib/admin-users/validations.ts +++ b/lib/admin-users/validations.ts @@ -1,4 +1,4 @@ -import { userRoles, users, type UserView } from "@/db/schema/users"; +import { User, userRoles, users, type UserView } from "@/db/schema/users"; import { createSearchParamsCache, parseAsArrayOf, @@ -29,6 +29,24 @@ export const searchParamsCache = createSearchParamsCache({ }) + +export const searchParamsUsersCache = createSearchParamsCache({ + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault( + [] + ), + page: parseAsInteger.withDefault(1), + perPage: parseAsInteger.withDefault(10), + sort: getSortingStateParser<User>().withDefault([ + { id: "createdAt", desc: true }, + ]), + email: parseAsString.withDefault(""), + // advanced filter + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + search: parseAsString.withDefault(""), + +}) + export const createUserSchema = z.object({ email: z .string() @@ -61,5 +79,6 @@ export const updateUserSchema = z.object({ }); export type GetUsersSchema = Awaited<ReturnType<typeof searchParamsCache.parse>> +export type GetSimpleUsersSchema = Awaited<ReturnType<typeof searchParamsUsersCache.parse>> export type CreateUserSchema = z.infer<typeof createUserSchema> export type UpdateUserSchema = z.infer<typeof updateUserSchema> |
