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,4 +1,4 @@
import 'sync_enums.dart';
import '../services/database_sync_service.dart';
class Ingredient {
final int? id;
@@ -9,7 +9,7 @@ class Ingredient {
// Sync metadata
final String syncId;
final DateTime lastModified;
final SyncStatus syncStatus;
final RecordSyncStatus syncStatus;
final bool isDeleted;
const Ingredient({
@@ -19,7 +19,7 @@ class Ingredient {
required this.unit,
required this.syncId,
required this.lastModified,
this.syncStatus = SyncStatus.pending,
this.syncStatus = RecordSyncStatus.pending,
this.isDeleted = false,
});
@@ -47,11 +47,11 @@ class Ingredient {
? 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,
);
}
@@ -63,7 +63,7 @@ class Ingredient {
String? unit,
String? syncId,
DateTime? lastModified,
SyncStatus? syncStatus,
RecordSyncStatus? syncStatus,
bool? isDeleted,
}) {
return Ingredient(