markSyncCompleted method

DatumSyncMetadata markSyncCompleted({
  1. String? dataHash,
  2. Map<String, DatumEntitySyncDetails>? entityCounts,
  3. DateTime? serverTimestamp,
  4. int? syncDuration,
})

Creates metadata marking sync as completed successfully.

Implementation

DatumSyncMetadata markSyncCompleted({
  String? dataHash,
  Map<String, DatumEntitySyncDetails>? entityCounts,
  DateTime? serverTimestamp,
  int? syncDuration,
}) {
  final now = DateTime.now();
  final updatedDevices = Map<String, DateTime>.from(devices ?? {});
  if (deviceId != null) {
    updatedDevices[deviceId!] = now;
  }

  return copyWith(
    lastSuccessfulSyncTime: now,
    syncStatus: SyncStatus.synced,
    dataHash: dataHash,
    entityCounts: entityCounts,
    serverTimestamp: serverTimestamp,
    devices: updatedDevices,
    conflictCount: 0,
    errorMessage: null,
    retryCount: 0,
    syncDuration: syncDuration,
  );
}