/* IMPORT */ import * as z from 'zod'; import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from 'nuqs/server'; import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" import { type RegEvalCriteriaView } from "@/db/schema"; // ---------------------------------------------------------------------------------------------------- /* QUERY PARAMETER SCHEMATA */ const searchParamsCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(['advancedTable', 'floatingBar'])).withDefault([]), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), sort: getSortingStateParser().withDefault([ { id: 'criteriaId', desc: false }, { id: 'orderIndex', desc: false }, ]), tagTypeLabel: parseAsString.withDefault(''), classLabel: parseAsString.withDefault(''), formCode: parseAsString.withDefault(''), formName: parseAsString.withDefault(''), filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(['and', 'or']).withDefault('and'), search: parseAsString.withDefault(''), }); // ---------------------------------------------------------------------------------------------------- /* TYPES */ type GetRegEvalCriteriaSchema = Awaited>; // ---------------------------------------------------------------------------------------------------- /* EXPORT */ export { searchParamsCache, type GetRegEvalCriteriaSchema, };