import { complianceSurveyTemplates } from "@/db/schema/compliance" import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from "nuqs/server" import * as z from "zod" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" export const searchParamsComplianceCache = createSearchParamsCache({ // Common flags flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), from: parseAsString.withDefault(""), to: parseAsString.withDefault(""), // Paging page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), // Sorting sort: getSortingStateParser().withDefault([ { id: "createdAt", desc: true }, ]), // Advanced filter filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), // Global search search: parseAsString.withDefault(""), }) // Export the type you can use in your server action: export type GetComplianceSurveyTemplatesSchema = Awaited>