diff options
Diffstat (limited to 'lib/tbe-last/validations.ts')
| -rw-r--r-- | lib/tbe-last/validations.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/tbe-last/validations.ts b/lib/tbe-last/validations.ts new file mode 100644 index 00000000..2f2cdd69 --- /dev/null +++ b/lib/tbe-last/validations.ts @@ -0,0 +1,37 @@ +import { createSearchParamsCache, + parseAsArrayOf, + parseAsInteger, + parseAsString, + parseAsStringEnum,parseAsBoolean +} from "nuqs/server" +import * as z from "zod" + +import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" +import { TbeSession } from "@/db/schema"; + + + +export const searchParamsTBELastCache = createSearchParamsCache({ + // 1) 공통 플래그 + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), + + // 2) 페이지네이션 + page: parseAsInteger.withDefault(1), + perPage: parseAsInteger.withDefault(10), + + // 3) 정렬 (Rfq 테이블) + // getSortingStateParser<Rfq>() → Rfq 테이블의 컬럼명에 맞춘 유효성 검사 + sort: getSortingStateParser<TbeSession>().withDefault([ + { id: "createdAt", desc: true }, + ]), + + + // 6) 고급 필터 (nuqs - filterColumns) + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + + // 7) 글로벌 검색어 + search: parseAsString.withDefault(""), +}) +export type GetTBELastSchema = Awaited<ReturnType<typeof searchParamsTBELastCache.parse>>; + |
