1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
/**
* 결재 워크플로우 모듈 Export
*
* Saga 패턴을 사용한 결재 프로세스 관리
*
* 사용 방법:
* 1. registerActionHandler()로 액션 핸들러 등록 (instrumentation.ts에서 초기화)
* 2. ApprovalSubmissionSaga로 결재 상신
* 3. 폴링 서비스가 자동으로 상태 확인 및 ApprovalExecutionSaga 실행
*
* 주요 Saga 클래스:
* - ApprovalSubmissionSaga: 결재 상신 프로세스 (7단계)
* - ApprovalExecutionSaga: 결재 승인 후 액션 실행 (7단계)
* - ApprovalRejectionSaga: 결재 반려 처리 (4단계)
*/
// 핸들러 레지스트리
export {
registerActionHandler,
getRegisteredHandlers,
type ActionHandler,
} from './approval-workflow';
// Saga 클래스들 (주요 API)
export {
ApprovalSubmissionSaga,
ApprovalExecutionSaga,
ApprovalRejectionSaga,
} from './approval-saga';
// 폴링 서비스
export {
startApprovalPollingScheduler,
checkPendingApprovals,
checkSingleApprovalStatus,
} from './approval-polling-service';
// 템플릿 유틸리티
export {
getApprovalTemplateByName,
replaceTemplateVariables,
htmlTableConverter,
htmlListConverter,
htmlDescriptionList,
} from './template-utils';
// 타입 정의
export type { TemplateVariables, ApprovalConfig, ApprovalResult } from './types';
// 캐시 관리
export {
revalidateApprovalCache,
revalidateApprovalLogs,
revalidatePendingActions,
revalidateAllApprovalCaches,
revalidateApprovalDetail,
} from './cache-utils';
// ⚠️ 주의: 클라이언트 컴포넌트는 '@/lib/approval/client'에서 import 하세요
// export { ApprovalPreviewDialog } from './approval-preview-dialog'; // 제거됨
|