saveThread method

  1. @override
Future<void> saveThread(
  1. Map<String, dynamic> thread
)
override

Implementation

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

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

  final now = DateTime.now().toIso8601String();
  await DB.execute(
    'INSERT INTO $_tableName (thread_id, user_id, tenant_id, thread_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)',
    positionalParams: [
      threadId,
      thread['userId']?.toString(),
      thread['tenantId']?.toString(),
      jsonEncode(thread),
      now,
      now,
    ],
  );
}