import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from "nuqs/server" import * as z from "zod" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" import { NumberTypeConfig } from "../types" export const searchParamsNumberTypeConfigsCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault( [] ), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), sort: getSortingStateParser().withDefault([ { id: "sdq", desc: false }, ]), // Number Type ID (필수) numberTypeId: parseAsInteger.withDefault(1), // 기본 필터들 codeGroupName: parseAsString.withDefault(""), description: parseAsString.withDefault(""), remark: parseAsString.withDefault(""), isActive: parseAsString.withDefault(""), projectId: parseAsString.withDefault(""), // 고급 필터 filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), search: parseAsString.withDefault(""), }) export type GetNumberTypeConfigsSchema = Awaited>