import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from "nuqs/server" import * as z from "zod" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" import { AcceptedQuotationItem } from "./table/accepted-quotations-table-columns" export const searchParamsCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault( [] ), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), sort: getSortingStateParser().withDefault([ { id: "acceptedAt", desc: true }, ]), // 검색 필드 rfqCode: parseAsString.withDefault(""), vendorName: parseAsString.withDefault(""), vendorCode: parseAsString.withDefault(""), projNm: parseAsString.withDefault(""), // 필터 필드 rfqType: parseAsStringEnum(["SHIP", "TOP", "HULL"]), currency: parseAsStringEnum(["USD", "EUR", "KRW", "JPY", "CNY"]), // 날짜 범위 from: parseAsString.withDefault(""), to: parseAsString.withDefault(""), // advanced filter filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), search: parseAsString.withDefault(""), })