batchDelete method
Implementation
@override
Future<void> batchDelete(List<Id> ids) async {
final soft = config.deletedAtField != null;
for (final id in ids) {
final idStr = config.idToString(id);
try {
final rec = await config.client
.collection(config.collection)
.getFirstListItem("${config.idField}='$idStr'");
if (soft) {
final patch = <String, dynamic>{
config.deletedAtField!: DateTime.now().toUtc().toIso8601String(),
};
if (config.injectScopeOnWrite && config.defaultScope != null) {
final scopeMap =
config.scopeFieldsBuilder?.call(config.defaultScope!) ??
{
config.scopeNameField: config.defaultScope!.name,
config.scopeKeysField: config.defaultScope!.keys,
};
patch.addAll(scopeMap);
}
await config.client
.collection(config.collection)
.update(rec.id, body: patch);
} else {
await config.client.collection(config.collection).delete(rec.id);
}
} catch (_) {
// ignore not found
}
}
}