/* Merges BatchJobConfig defaults with env-backed resolve helpers. */
import { resolveBoolean, resolveValidatedNumber } from '../../shared/config/environment.js';
export function mergeBatchSchedulerJobConfig(overrides) {
    return {
        cleanupInterval: resolveValidatedNumber('FORGETTING_CLEANUP_INTERVAL_MS', 24 * 60 * 60 * 1000, n => n >= 60_000, '최솟값 60000'),
        monitoringInterval: resolveValidatedNumber('BATCH_MONITORING_INTERVAL_MS', 300_000, n => n >= 10_000, '최솟값 10000'),
        healthCheckInterval: resolveValidatedNumber('BATCH_HEALTH_CHECK_INTERVAL_MS', 300_000, n => n >= 10_000, '최솟값 10000'),
        consolidationScoreIncrementalInterval: 60 * 60 * 1000, // 1시간
        consolidationScoreFullSweepInterval: 24 * 60 * 60 * 1000, // 24시간
        consolidationScoreFullSweepHour: 3, // 새벽 3시
        relationValidationInterval: 7 * 24 * 60 * 60 * 1000, // 7일
        relationValidationDayOfWeek: 0, // 일요일
        relationValidationHour: 2, // 새벽 2시
        logRotationInterval: 24 * 60 * 60 * 1000, // 24시간 (매일)
        tripleExtractionInterval: 60 * 60 * 1000, // 1시간
        tripleExtractionHour: undefined, // 시간 지정 안 함 (간격 기반 실행)
        tripleExtractionBatchSize: 10, // 배치 크기 10개
        tripleExtractionTimeout: 30 * 1000, // 30초
        qualityMeasurementInterval: 24 * 60 * 60 * 1000, // 24시간 (일일)
        qualityMeasurementHour: undefined, // 시간 지정 안 함 (간격 기반 실행)
        metaMemoryIntrospectionInterval: 6 * 60 * 60 * 1000, // 6시간, Issue 21
        sleepConsolidationInterval: resolveValidatedNumber('SLEEP_CONSOLIDATION_INTERVAL_MS', 60 * 60 * 1000, n => n >= 60_000, '최솟값 60000'),
        telemetryCleanupInterval: resolveValidatedNumber('TELEMETRY_CLEANUP_INTERVAL_MS', 24 * 60 * 60 * 1000, n => n >= 60_000, '최솟값 60000'),
        memoryReviewCandidatesInterval: resolveValidatedNumber('MEMORY_REVIEW_CANDIDATES_INTERVAL_MS', 24 * 60 * 60 * 1000, n => n >= 60_000, '최솟값 60000'),
        memoryReviewCandidatesSchedulerEnabled: resolveBoolean('MEMORY_REVIEW_CANDIDATES_SCHEDULER_ENABLED', {
            defaultValue: true
        }),
        maxBatchSize: 1000,
        enableLogging: true,
        enableNotifications: false,
        enableMetrics: true,
        maxConcurrentJobs: 3,
        jobTimeout: 5 * 60 * 1000, // 5분
        retryAttempts: 3,
        retryDelay: 1000, // 1초
        weeklyRelationValidationTimeout: undefined, // 기본값: jobTimeout 사용
        ...overrides
    };
}
//# sourceMappingURL=batch-scheduler-default-config.js.map