summaryrefslogtreecommitdiff
path: root/lib/bidding/validation.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bidding/validation.ts')
-rw-r--r--lib/bidding/validation.ts17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/bidding/validation.ts b/lib/bidding/validation.ts
index 2011cd27..8476be1c 100644
--- a/lib/bidding/validation.ts
+++ b/lib/bidding/validation.ts
@@ -71,6 +71,7 @@ export const createBiddingSchema = z.object({
biddingType: z.enum(biddings.biddingType.enumValues, {
required_error: "입찰유형을 선택해주세요"
}),
+ biddingTypeCustom: z.string().optional(),
awardCount: z.enum(biddings.awardCount.enumValues, {
required_error: "낙찰수를 선택해주세요"
}),
@@ -89,9 +90,6 @@ export const createBiddingSchema = z.object({
// ✅ 가격 정보 (통화 필수)
currency: z.string().min(1, "통화를 선택해주세요").default("KRW"),
- budget: z.string().optional(),
- targetPrice: z.string().optional(),
- finalBidPrice: z.string().optional(),
// 상태 및 담당자
status: z.enum(biddings.status.enumValues).default("bidding_generated"),
@@ -110,8 +108,8 @@ export const createBiddingSchema = z.object({
taxConditions: z.string().min(1, "세금조건은 필수입니다"),
incoterms: z.string().min(1, "운송조건은 필수입니다"),
contractDeliveryDate: z.string().min(1, "계약납품일은 필수입니다"),
- shippingPort: z.string().min(1, "선적지는 필수입니다"),
- destinationPort: z.string().min(1, "하역지는 필수입니다"),
+ shippingPort: z.string().optional(),
+ destinationPort: z.string().optional(),
isPriceAdjustmentApplicable: z.boolean().default(false),
sparePartOptions: z.string().optional(),
}).optional(),
@@ -126,6 +124,15 @@ export const createBiddingSchema = z.object({
}, {
message: "제출시작일시가 제출마감일시보다 늦을 수 없습니다",
path: ["submissionEndDate"]
+ }).refine((data) => {
+ // 기타 입찰유형 선택 시 직접입력 필드 검증
+ if (data.biddingType === "other") {
+ return data.biddingTypeCustom && data.biddingTypeCustom.trim().length > 0
+ }
+ return true
+ }, {
+ message: "기타 입찰유형을 선택한 경우 직접 입력해주세요",
+ path: ["biddingTypeCustom"]
})
export const updateBiddingSchema = z.object({