summaryrefslogtreecommitdiff
path: root/lib/nonsap-sync/sync-config.ts
blob: a18dd208a651e58a62fb51a067c49a3344985308 (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
// NONSAP 동기화 설정
export interface SyncConfig {
  pageSize: number;
  batchSize: number;
  maxWorkers: number;
  deltaSyncEnabled: boolean;
  cronSchedule: string;
  autoRefreshInterval: number; // UI 자동 새로고침 간격 (ms)
}

// 환경별 설정
const configs: Record<string, SyncConfig> = {
  development: {
    pageSize: 1000,
    batchSize: 50,
    maxWorkers: 4,
    deltaSyncEnabled: true,
    cronSchedule: '0 0 1 * * *', // 매일 새벽 1시
    autoRefreshInterval: 1000, // 1초
  },
  production: {
    pageSize: 5000,
    batchSize: 200,
    maxWorkers: 4,
    deltaSyncEnabled: true,
    cronSchedule: '0 0 1 * * *', // 매일 새벽 1시
    autoRefreshInterval: 30000, // 30초
  }
};

// 현재 환경의 설정 가져오기
export const SYNC_CONFIG: SyncConfig = configs[process.env.NODE_ENV || 'development'];

// 개별 설정값들 (기존 코드와의 호환성을 위해)
export const PAGE_SIZE = SYNC_CONFIG.pageSize;
export const BATCH_SIZE = SYNC_CONFIG.batchSize;
export const MAX_WORKERS = SYNC_CONFIG.maxWorkers;
export const DELTA_SYNC_ENABLED = SYNC_CONFIG.deltaSyncEnabled;

// 설정 정보를 반환하는 함수 (API에서 사용)
export function getSyncConfigInfo() {
  return {
    ...SYNC_CONFIG,
    environment: process.env.NODE_ENV || 'development'
  };
}