saveThread method
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,
],
);
}