getStatistics method

Map<String, dynamic> getStatistics()

Gets statistics about flush operations

Implementation

Map<String, dynamic> getStatistics() {
  if (_logs.isEmpty) {
    return {
      'total': 0,
      'successful': 0,
      'failed': 0,
      'skipped': 0,
      'success_rate': 0.0,
      'by_trigger': <String, int>{},
    };
  }

  final total = _logs.length;
  final successful = _logs.where((log) => log.successful && log.errorMessage?.contains('Skipped') != true).length;
  final skipped = _logs.where((log) => log.errorMessage?.contains('Skipped') == true).length;
  final failed = total - successful - skipped;
  final successRate = total > 0 ? (successful / total) * 100 : 0.0;

  final byTrigger = <String, int>{};
  for (final log in _logs) {
    byTrigger[log.trigger] = (byTrigger[log.trigger] ?? 0) + 1;
  }

  return {
    'total': total,
    'successful': successful,
    'failed': failed,
    'skipped': skipped,
    'success_rate': successRate,
    'by_trigger': byTrigger,
  };
}