saveRun method

  1. @override
Future<void> saveRun(
  1. Map<String, dynamic> run
)
override

Implementation

@override
Future<void> saveRun(Map<String, dynamic> run) async {
  await _ensureTable();
  final runId = run['id']?.toString();
  if (runId == null || runId.isEmpty) {
    throw ArgumentError('AI run must include an id.');
  }

  await DB.execute(
    'DELETE FROM $_tableName WHERE run_id = ?',
    positionalParams: [runId],
  );

  final now = DateTime.now().toIso8601String();
  await DB.execute(
    'INSERT INTO $_tableName (run_id, agent_name, user_id, tenant_id, thread_id, status, run_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
    positionalParams: [
      runId,
      run['agentName']?.toString() ?? 'unknown',
      run['userId']?.toString(),
      run['tenantId']?.toString(),
      run['threadId']?.toString(),
      run['status']?.toString() ?? 'pending',
      jsonEncode(run),
      now,
      now,
    ],
  );
}