feat: Introduce offline synchronization for time registrations via a new sync service.

This commit is contained in:
steinhelge
2025-11-24 21:23:20 +01:00
parent 237d56066b
commit e05d694218
10 changed files with 367 additions and 76 deletions
+41
View File
@@ -0,0 +1,41 @@
enum SyncAction { create, update, delete }
class SyncOperation {
final String id;
final String collection;
final String docId;
final SyncAction action;
final Map<String, dynamic> data;
final DateTime timestamp;
SyncOperation({
required this.id,
required this.collection,
required this.docId,
required this.action,
required this.data,
required this.timestamp,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'collection': collection,
'docId': docId,
'action': action.name,
'data': data,
'timestamp': timestamp.toIso8601String(),
};
}
factory SyncOperation.fromMap(Map<String, dynamic> map) {
return SyncOperation(
id: map['id'],
collection: map['collection'],
docId: map['docId'],
action: SyncAction.values.firstWhere((e) => e.name == map['action']),
data: Map<String, dynamic>.from(map['data']),
timestamp: DateTime.parse(map['timestamp']),
);
}
}