import 'package:superport/data/models/dashboard/license_expiry_summary.dart';

/// 라이선스 만료 요약 정보 확장 기능
extension LicenseExpirySummaryExtensions on LicenseExpirySummary {
  /// 총 라이선스 수
  int get totalLicenses => expired + expiring7Days + expiring30Days + expiring90Days + active;
  
  /// 만료 또는 만료 임박 라이선스 수 (90일 이내)
  int get criticalLicenses => expired + expiring7Days + expiring30Days + expiring90Days;
  
  /// 위험 레벨 계산 (0: 안전, 1: 주의, 2: 경고, 3: 위험)
  int get alertLevel {
    if (expired > 0) return 3; // 이미 만료된 라이선스 있음
    if (expiring7Days > 0) return 2; // 7일 내 만료
    if (expiring30Days > 0) return 1; // 30일 내 만료
    return 0; // 안전
  }
  
  /// 알림 메시지
  String get alertMessage {
    switch (alertLevel) {
      case 3:
        return '만료된 라이선스 $expired개가 있습니다';
      case 2:
        return '7일 내 만료 예정 라이선스 $expiring7Days개';
      case 1:
        return '30일 내 만료 예정 라이선스 $expiring30Days개';
      default:
        return '모든 라이선스가 정상입니다';
    }
  }
  
  /// 알림 색상 (Material Color)
  String get alertColor {
    switch (alertLevel) {
      case 3: return 'red';    // 위험 - 빨간색
      case 2: return 'orange'; // 경고 - 주황색  
      case 1: return 'yellow'; // 주의 - 노란색
      default: return 'green'; // 안전 - 초록색
    }
  }
  
  /// 표시할 아이콘
  String get alertIcon {
    switch (alertLevel) {
      case 3: return 'error';        // 에러 아이콘
      case 2: return 'warning';      // 경고 아이콘
      case 1: return 'info';         // 정보 아이콘
      default: return 'check_circle'; // 체크 아이콘
    }
  }
}