feat adds proper syncing feature

Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
This commit is contained in:
2025-08-27 20:51:29 +02:00
parent b0d5130cbf
commit 2017fd097d
22 changed files with 1518 additions and 3258 deletions

View File

@@ -1,6 +1,6 @@
import 'package:uuid/uuid.dart';
import 'sync_enums.dart';
import '../services/database_sync_service.dart';
class SupplementIntake {
final int? id;
@@ -13,7 +13,7 @@ class SupplementIntake {
// Sync metadata
final String syncId;
final DateTime lastModified;
final SyncStatus syncStatus;
final RecordSyncStatus syncStatus;
final bool isDeleted;
SupplementIntake({
@@ -25,7 +25,7 @@ class SupplementIntake {
this.notes,
String? syncId,
DateTime? lastModified,
this.syncStatus = SyncStatus.pending,
this.syncStatus = RecordSyncStatus.pending,
this.isDeleted = false,
}) : syncId = syncId ?? const Uuid().v4(),
lastModified = lastModified ?? DateTime.now();
@@ -58,11 +58,11 @@ class SupplementIntake {
? DateTime.parse(map['lastModified'])
: DateTime.now(),
syncStatus: map['syncStatus'] != null
? SyncStatus.values.firstWhere(
? RecordSyncStatus.values.firstWhere(
(e) => e.name == map['syncStatus'],
orElse: () => SyncStatus.pending,
orElse: () => RecordSyncStatus.pending,
)
: SyncStatus.pending,
: RecordSyncStatus.pending,
isDeleted: (map['isDeleted'] ?? 0) == 1,
);
}
@@ -76,7 +76,7 @@ class SupplementIntake {
String? notes,
String? syncId,
DateTime? lastModified,
SyncStatus? syncStatus,
RecordSyncStatus? syncStatus,
bool? isDeleted,
}) {
return SupplementIntake(
@@ -96,7 +96,7 @@ class SupplementIntake {
/// Create a new intake marked as synced
SupplementIntake markAsSynced() {
return copyWith(
syncStatus: SyncStatus.synced,
syncStatus: RecordSyncStatus.synced,
);
}
@@ -105,7 +105,7 @@ class SupplementIntake {
return copyWith(
isDeleted: true,
lastModified: DateTime.now(),
syncStatus: SyncStatus.modified,
syncStatus: RecordSyncStatus.modified,
);
}
}