diff options
Diffstat (limited to 'lib/approval-line/validations.ts')
| -rw-r--r-- | lib/approval-line/validations.ts | 24 |
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 |
