summaryrefslogtreecommitdiff
path: root/lib/approval-line/validations.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/approval-line/validations.ts')
-rw-r--r--lib/approval-line/validations.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/approval-line/validations.ts b/lib/approval-line/validations.ts
new file mode 100644
index 00000000..4f55454a
--- /dev/null
+++ b/lib/approval-line/validations.ts
@@ -0,0 +1,24 @@
+import { z } from 'zod';
+import { SearchParamsApprovalTemplateCache } from '@/lib/approval-template/validations';
+
+// 결재선 검색 파라미터 스키마 (기존 템플릿 검증 스키마 재사용)
+export const SearchParamsApprovalLineCache = SearchParamsApprovalTemplateCache;
+
+// 결재선 생성/수정 스키마
+export const ApprovalLineSchema = z.object({
+ name: z.string().min(1, '결재선 이름은 필수입니다'),
+ description: z.string().optional(),
+ aplns: z.array(z.object({
+ id: z.string(),
+ epId: z.string().optional(),
+ userId: z.string().optional(),
+ emailAddress: z.string().email('유효한 이메일 주소를 입력해주세요').optional(),
+ name: z.string().optional(),
+ deptName: z.string().optional(),
+ role: z.enum(['0', '1', '2', '3', '4', '7', '9']),
+ seq: z.string(),
+ opinion: z.string().optional()
+ })).min(1, '최소 1개의 결재 경로가 필요합니다'),
+});
+
+export type ApprovalLineFormData = z.infer<typeof ApprovalLineSchema>; \ No newline at end of file