upsert method
Insert or update a record in a local table.
Implementation
@override
Future<void> upsert(
String table, String id, Map<String, dynamic> data) async {
final columns =
data.keys.map((c) => '"${c.replaceAll('"', '""')}"').toList();
final safeTable = '"${table.replaceAll('"', '""')}"';
final placeholders = List.filled(columns.length, '?').join(', ');
final values = data.values.toList();
await _db.customStatement(
'INSERT OR REPLACE INTO $safeTable (${columns.join(', ')}) VALUES ($placeholders)',
values,
);
}