summaryrefslogtreecommitdiff
path: root/lib/rfq-last/validations.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rfq-last/validations.ts')
-rw-r--r--lib/rfq-last/validations.ts24
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/rfq-last/validations.ts b/lib/rfq-last/validations.ts
index 09fd2f6f..b133433f 100644
--- a/lib/rfq-last/validations.ts
+++ b/lib/rfq-last/validations.ts
@@ -10,6 +10,7 @@ import {
import * as z from "zod";
import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers";
+import { RfqLastAttachments } from "@/db/schema";
// RFQ 상태 옵션
export const RFQ_STATUS_OPTIONS = [
@@ -62,4 +63,25 @@ import {
export type GetRfqsSchema = Awaited<
ReturnType<typeof searchParamsRfqCache.parse>
- >; \ No newline at end of file
+ >;
+
+
+ export const searchParamsRfqAttachmentsCache = createSearchParamsCache({
+ flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]),
+ page: parseAsInteger.withDefault(1),
+ perPage: parseAsInteger.withDefault(10),
+ sort: getSortingStateParser<RfqLastAttachments>().withDefault([
+ { id: "createdAt", desc: true },
+ ]),
+ // 기본 필터
+ attachmentType: parseAsArrayOf(z.string()).withDefault([]),
+ fileType: parseAsArrayOf(z.string()).withDefault([]),
+ search: parseAsString.withDefault(""),
+ // advanced filter
+ filters: getFiltersStateParser().withDefault([]),
+ joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
+ })
+
+ // 스키마 타입들
+ export type GetRfqLastAttachmentsSchema = Awaited<ReturnType<typeof searchParamsRfqAttachmentsCache.parse>>
+