delete method
Deletes all Ts in the list and returns the deleted rows.
This is an atomic operation, meaning that if one of the rows fail to
be deleted, none of the rows will be deleted.
Implementation
Future<List<T>> delete(
_i1.Session session,
List<T> rows, {
_i1.Transaction? transaction,
}) async {
final tableName = _table.tableName;
final resultData = await supabase
.from(tableName)
.delete()
.inFilter(_table.id.columnName, rows.map((e) => e.id).toList())
.select();
List<T> results = [];
for (int i = 0; i < resultData.length; i++) {
var dbRowMap = resultData[i];
var originalRowMap = rows[i].toJson();
var mergedMap = {...originalRowMap, ...dbRowMap};
results.add(
session.serverpod.serializationManager.deserialize<T>(mergedMap),
);
}
return results;
}