getDataStatistics method

  1. @override
Future<Map<String, int>> getDataStatistics()
override

Implementation

@override
Future<Map<String, int>> getDataStatistics() async {
  try {
    final stats = <String, int>{};

    // Contar erros
    final allErrors = await _errorManager.getAllErrors();
    stats['totalErrors'] = allErrors.length;
    stats['pendingErrors'] = allErrors.where((e) => !e.isSent).length;
    stats['sentErrors'] = allErrors.where((e) => e.isSent).length;

    // Contar dados por prefixo
    stats['syncData'] = await _countDataByPrefix(_syncDataPrefix);
    stats['syncLogs'] = await _countDataByPrefix(_syncLogPrefix);
    stats['syncQueue'] = await _countDataByPrefix(_syncQueuePrefix);
    stats['syncStatus'] = await _countDataByPrefix(_syncStatusPrefix);
    stats['syncMetadata'] = await _countDataByPrefix(_syncMetadataPrefix);

    // Verificar se há sessão ativa
    final hasSession = await _syncConfig.isAuthenticated();
    stats['hasActiveSession'] = hasSession ? 1 : 0;

    _loggerProvider?.info(
      'Data statistics retrieved',
      category: 'SyncDataCleanupService',
      metadata: stats,
    );

    return stats;
  } catch (e) {
    _loggerProvider?.error(
      'Failed to get data statistics: $e',
      category: 'SyncDataCleanupService',
      exception: e,
    );
    return {};
  }
}