getStats method

Map<String, dynamic> getStats()

Get comprehensive cache statistics

Implementation

Map<String, dynamic> getStats() {
  int globalQueries = 0;
  int scopedQueries = 0;

  // Count queries by checking if they're tracked in _scopeQueries
  final allScopedKeys = <String>{};
  for (final scopeKeys in _scopeQueries.values) {
    allScopedKeys.addAll(scopeKeys);
  }

  for (final key in _queries.keys) {
    if (allScopedKeys.contains(key)) {
      scopedQueries++;
    } else {
      globalQueries++;
    }
  }

  return {
    'total_queries': _queries.length,
    'global_queries': globalQueries,
    'scoped_queries': scopedQueries,
    'active_scopes': _scopeQueries.length,
    'loading': _queries.values.where((q) => q.isLoading.value).length,
    'success': _queries.values
        .where((q) => q.status.value == ZenQueryStatus.success)
        .length,
    'error': _queries.values
        .where((q) => q.status.value == ZenQueryStatus.error)
        .length,
    'stale': _queries.values.where((q) => q.isStale).length,
  };
}