queueInsertBatch method
Add multiple insert operations to queue in a batch
Implementation
Future<void> queueInsertBatch({
required String collectionName,
required List<Map<String, dynamic>> items,
}) async {
final operations = <SyncOperation>[];
for (final item in items) {
if (!_isJsonSerializable(item['data'])) {
throw ArgumentError(
'Data for record ${item['recordId']} is not JSON-serializable',
);
}
final operation = SyncOperation()
..collectionName = collectionName
..operationType = 'insert'
..payload = jsonEncode(item['data'])
..timestamp = DateTime.now()
..status = 'pending'
..recordId = item['recordId'];
operations.add(operation);
}
await _localStorage.addToSyncQueueBatch(operations);
// Emit events for all operations
for (final op in operations) {
_onEvent?.call(SyncEvent(
type: SyncEventType.operationQueued,
collectionName: collectionName,
recordId: op.recordId,
metadata: {'operationType': 'insert'},
));
}
}