summaryrefslogtreecommitdiff
path: root/lib/approval/index.ts
blob: 943ada81b256080c5b10ab2c83f15d37e5d78fa7 (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
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
/**
 * 결재 워크플로우 모듈 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';