summaryrefslogtreecommitdiff
path: root/lib/approval-line/validations.ts
blob: 4f55454ad26b41847f172f3148134538ffe03c99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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>;