summaryrefslogtreecommitdiff
path: root/lib/rfqs/validations.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-04-08 03:08:19 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-04-08 03:08:19 +0000
commit9ceed79cf32c896f8a998399bf1b296506b2cd4a (patch)
treef84750fa6cac954d5e31221fc47a54c655fc06a9 /lib/rfqs/validations.ts
parent230ce796836c25df26c130dbcd616ef97d12b2ec (diff)
로그인 및 미들웨어 처리. 구조 변경
Diffstat (limited to 'lib/rfqs/validations.ts')
-rw-r--r--lib/rfqs/validations.ts10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/rfqs/validations.ts b/lib/rfqs/validations.ts
index 369e426c..9e9e96cc 100644
--- a/lib/rfqs/validations.ts
+++ b/lib/rfqs/validations.ts
@@ -11,6 +11,7 @@ import { Rfq, rfqs, RfqsView, VendorCbeView, VendorRfqViewBase, VendorTbeVi
import { Vendor, vendors } from "@/db/schema/vendors";
export const RfqType = {
+ PURCHASE_BUDGETARY: "PURCHASE_BUDGETARY",
PURCHASE: "PURCHASE",
BUDGETARY: "BUDGETARY"
} as const;
@@ -41,7 +42,7 @@ export const searchParamsCache = createSearchParamsCache({
filters: getFiltersStateParser().withDefault([]),
joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
search: parseAsString.withDefault(""),
- rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY"]).withDefault("PURCHASE"),
+ rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY", "PURCHASE_BUDGETARY"]).withDefault("PURCHASE"),
});
@@ -106,7 +107,7 @@ export const searchParamsTBECache = createSearchParamsCache({
tbeResult: parseAsString.withDefault(""),
tbeNote: parseAsString.withDefault(""),
tbeUpdated: parseAsString.withDefault(""),
- rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY"]).withDefault("PURCHASE"),
+ rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY", "PURCHASE_BUDGETARY"]).withDefault("PURCHASE"),
// 5) 상태 (배열) - Rfq["status"]는 "DRAFT"|"PUBLISHED"|"EVALUATION"|"AWARDED"
// rfqs.status.enumValues 로 가져온 문자열 배열을 z.enum([...])로 처리
@@ -131,7 +132,7 @@ export const createRfqSchema = z.object({
parentRfqId: z.number().nullable().optional(), // 부모 RFQ ID (선택적)
dueDate: z.date(),
status: z.enum(["DRAFT", "PUBLISHED", "EVALUATION", "AWARDED"]),
- rfqType: z.enum([RfqType.PURCHASE, RfqType.BUDGETARY]).default(RfqType.PURCHASE),
+ rfqType: z.enum([RfqType.PURCHASE, RfqType.BUDGETARY, RfqType.PURCHASE_BUDGETARY]).default(RfqType.PURCHASE),
createdBy: z.number(),
});
@@ -170,6 +171,7 @@ export const updateRfqSchema = z.object({
(val) => (val === null || val === '') ? undefined : val,
z.date().optional()
),
+ rfqType: z.enum(["PURCHASE", "BUDGETARY", "PURCHASE_BUDGETARY"]).optional(),
status: z.union([
z.enum(["DRAFT", "PUBLISHED", "EVALUATION", "AWARDED"]),
z.string().refine(
@@ -251,7 +253,7 @@ export const searchParamsCBECache = createSearchParamsCache({
cbeResult: parseAsString.withDefault(""),
cbeNote: parseAsString.withDefault(""),
cbeUpdated: parseAsString.withDefault(""),
- rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY"]).withDefault("PURCHASE"),
+ rfqType: parseAsStringEnum(["PURCHASE", "BUDGETARY", "PURCHASE_BUDGETARY"]).withDefault("PURCHASE"),
totalCost: parseAsInteger.withDefault(0),