diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-29 11:48:59 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-29 11:48:59 +0000 |
| commit | 10f90dc68dec42e9a64e081cc0dce6a484447290 (patch) | |
| tree | 5bc8bb30e03b09a602e7d414d943d0e7f24b1a0f /lib/gtc-contract/validations.ts | |
| parent | 792fb0c21136eededecf52b5b4aa1a252bdc4bfb (diff) | |
(대표님, 박서영, 최겸) document-list-only, gtc, vendorDocu, docu-list-rule
Diffstat (limited to 'lib/gtc-contract/validations.ts')
| -rw-r--r-- | lib/gtc-contract/validations.ts | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/gtc-contract/validations.ts b/lib/gtc-contract/validations.ts index d00d795b..0566c1cb 100644 --- a/lib/gtc-contract/validations.ts +++ b/lib/gtc-contract/validations.ts @@ -70,4 +70,35 @@ export const createNewRevisionSchema = z.object({ export type GetGtcDocumentsSchema = Awaited<ReturnType<typeof searchParamsCache.parse>> export type CreateGtcDocumentSchema = z.infer<typeof createGtcDocumentSchema> export type UpdateGtcDocumentSchema = z.infer<typeof updateGtcDocumentSchema> -export type CreateNewRevisionSchema = z.infer<typeof createNewRevisionSchema>
\ No newline at end of file +export type CreateNewRevisionSchema = z.infer<typeof createNewRevisionSchema> + + + +// 복제용 schema +export const cloneGtcDocumentSchema = z.object({ + sourceDocumentId: z.number().min(1, "원본 문서 ID가 필요합니다."), + type: z.enum(["standard", "project"]), + projectId: z.number().nullable().optional(), + title: z.string().optional(), + editReason: z.string().optional(), +}).refine((data) => { + // 프로젝트 타입인 경우 projectId가 필수 + if (data.type === "project") { + return data.projectId !== null && data.projectId !== undefined + } + return true +}, { + message: "프로젝트 타입인 경우 프로젝트를 선택해야 합니다.", + path: ["projectId"] +}).refine((data) => { + // 표준 타입인 경우 projectId는 null이어야 함 + if (data.type === "standard") { + return data.projectId === null || data.projectId === undefined + } + return true +}, { + message: "표준 타입인 경우 프로젝트를 선택할 수 없습니다.", + path: ["projectId"] +}) + +export type CloneGtcDocumentSchema = z.infer<typeof cloneGtcDocumentSchema>
\ No newline at end of file |
