stats method

Future<Map<String, dynamic>> stats()

Returns aggregate metrics from the database.

Implementation

Future<Map<String, dynamic>> stats() async {
  final result = await _db.query('''
    SELECT
      status,
      COUNT(*) as count,
      AVG(EXTRACT(EPOCH FROM (finished_at - created_at))) as avg_duration_sec
    FROM $_table
    GROUP BY status
  ''');

  final stats = <String, dynamic>{};
  for (final row in result.rows) {
    stats[row['status'] as String] = {
      'count': row['count'],
      'avgDurationSec': row['avg_duration_sec'],
    };
  }
  return stats;
}