import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from 'nuqs/server'; import { z } from 'zod'; import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; import { approvalTemplates } from '@/db/schema/knox/approvals'; export const SearchParamsApprovalTemplateCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(['advancedTable', 'floatingBar'])).withDefault([]), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), sort: getSortingStateParser().withDefault([ { id: 'updatedAt', desc: true }, ]), filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(['and', 'or']).withDefault('and'), search: parseAsString.withDefault(''), }); export type GetApprovalTemplateSchema = Awaited< ReturnType >;