/// 백엔드 호환성 설정
/// 백엔드에서 지원하지 않는 기능들을 조건부로 비활성화
class BackendCompatibilityConfig {
  /// 백엔드 100% 호환 모드 활성화 여부
  static const bool isBackendCompatibilityMode = true;
  
  /// 백엔드에서 지원하지 않는 기능들
  static const BackendFeatureSupport features = BackendFeatureSupport();
}

/// 백엔드 기능 지원 현황
class BackendFeatureSupport {
  const BackendFeatureSupport();
  
  /// License 관리 기능 (백엔드 미지원)
  bool get licenseManagement => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// Dashboard 통계 API (백엔드 미지원)  
  bool get dashboardStats => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// 파일 관리 기능 (백엔드 미지원)
  bool get fileManagement => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// 보고서 생성 기능 (백엔드 미지원)
  bool get reportGeneration => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// 감사 로그 기능 (백엔드 미지원)
  bool get auditLogs => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// 백업/복원 기능 (백엔드 미지원)
  bool get backupRestore => !BackendCompatibilityConfig.isBackendCompatibilityMode;
  
  /// 대량 처리 기능 (백엔드 미지원)
  bool get bulkOperations => !BackendCompatibilityConfig.isBackendCompatibilityMode;
}

/// 백엔드 호환성 헬퍼 메서드
extension BackendCompatibilityExtension on BackendFeatureSupport {
  /// 기능이 활성화되어 있는지 확인
  bool isFeatureEnabled(String feature) {
    switch (feature.toLowerCase()) {
      case 'license':
      case 'licenses':
        return licenseManagement;
      case 'dashboard':
      case 'stats':
        return dashboardStats;
      case 'file':
      case 'files':
        return fileManagement;
      case 'report':
      case 'reports':
        return reportGeneration;
      case 'audit':
      case 'logs':
        return auditLogs;
      case 'backup':
        return backupRestore;
      case 'bulk':
        return bulkOperations;
      default:
        return true; // 기본적으로 지원되는 기능
    }
  }
  
  /// 비활성화된 기능에 대한 안내 메시지
  String getDisabledFeatureMessage(String feature) {
    return '$feature 기능은 현재 백엔드에서 지원되지 않습니다.';
  }
}