import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from "nuqs/server"; import * as z from "zod"; import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers"; import { incoterms } from "@/db/schema/procurementRFQ"; export const SearchParamsCache = createSearchParamsCache({ // UI 모드나 플래그 관련 flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), // 페이징 page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), // 정렬 (createdAt 기준 내림차순) sort: getSortingStateParser().withDefault([ { id: "createdAt", desc: true }]), // 기존 필드 code: parseAsString.withDefault(""), description: parseAsString.withDefault(""), isActive: parseAsString.withDefault(""), filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), search: parseAsString.withDefault(""), }); export type GetIncotermsSchema = Awaited>;