summaryrefslogtreecommitdiff
path: root/lib/tech-vendors/validations.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-06-24 01:51:59 +0000
committerjoonhoekim <26rote@gmail.com>2025-06-24 01:51:59 +0000
commit6824e097d768f724cf439b410ccfb1ab9685ac98 (patch)
tree1f297313637878e7a4ad6c89b84d5a2c3e9eb650 /lib/tech-vendors/validations.ts
parentf4825dd3853188de4688fb4a56c0f4e847da314b (diff)
parent4e63d8427d26d0d1b366ddc53650e15f3481fc75 (diff)
(merge) 대표님/최겸 작업사항 머지
Diffstat (limited to 'lib/tech-vendors/validations.ts')
-rw-r--r--lib/tech-vendors/validations.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/tech-vendors/validations.ts b/lib/tech-vendors/validations.ts
index bae3e5b4..ee076945 100644
--- a/lib/tech-vendors/validations.ts
+++ b/lib/tech-vendors/validations.ts
@@ -46,7 +46,8 @@ export const searchParamsCache = createSearchParamsCache({
// 예) 코드 검색
vendorCode: parseAsString.withDefault(""),
-
+ // 벤더 타입 필터링 (다중 선택 가능)
+ vendorType: parseAsStringEnum(["ship", "top", "hull"]),
// 필요하다면 이메일 검색 / 웹사이트 검색 등 추가 가능
email: parseAsString.withDefault(""),
website: parseAsString.withDefault(""),
@@ -117,6 +118,10 @@ export const updateTechVendorSchema = z.object({
phone: z.string().optional(),
email: z.string().email("유효한 이메일 주소를 입력해주세요").optional(),
website: z.string().url("유효한 URL을 입력해주세요").optional(),
+ techVendorType: z.union([
+ z.array(z.enum(VENDOR_TYPES)).min(1, "최소 하나의 벤더 타입을 선택해주세요"),
+ z.string().min(1, "벤더 타입을 선택해주세요")
+ ]).optional(),
status: z.enum(techVendors.status.enumValues).optional(),
userId: z.number().optional(),
comment: z.string().optional(),
@@ -155,7 +160,10 @@ export const createTechVendorSchema = z
files: z.any().optional(),
status: z.enum(techVendors.status.enumValues).default("ACTIVE"),
- techVendorType: z.enum(VENDOR_TYPES).default("조선"),
+ techVendorType: z.union([
+ z.array(z.enum(VENDOR_TYPES)).min(1, "최소 하나의 벤더 타입을 선택해주세요"),
+ z.string().min(1, "벤더 타입을 선택해주세요")
+ ]).default(["조선"]),
representativeName: z.union([z.string().max(255), z.literal("")]).optional(),
representativeBirth: z.union([z.string().max(20), z.literal("")]).optional(),