Track online szinkronizáció refraktorálása
This commit is contained in:
@@ -141,8 +141,8 @@ class TsSyncService extends GetxService {
|
||||
Future<void> _push() async {
|
||||
await _pushProjects();
|
||||
await _pushMeasuredPoints();
|
||||
await _pushTracks();
|
||||
await _pushTrackPoints();
|
||||
await pushTracks();
|
||||
await pushTrackPoints();
|
||||
await _pushNoteItems();
|
||||
}
|
||||
|
||||
@@ -188,6 +188,7 @@ class TsSyncService extends GetxService {
|
||||
'measured_at': _toUtc(r['timestamp'] as String?),
|
||||
'note': r['note'],
|
||||
'device_id': r['device_id'],
|
||||
'app_instance_id': r['app_instance_id'],
|
||||
'deleted_at': _toUtc(r['deleted_at'] as String?),
|
||||
})
|
||||
.toList();
|
||||
@@ -197,7 +198,7 @@ class TsSyncService extends GetxService {
|
||||
'measured_points', rows.map((r) => r['uuid'] as String).toList());
|
||||
}
|
||||
|
||||
Future<void> _pushTracks() async {
|
||||
Future<void> pushTracks() async {
|
||||
final rows = await _db.pendingTracks();
|
||||
if (rows.isEmpty) return;
|
||||
|
||||
@@ -213,6 +214,7 @@ class TsSyncService extends GetxService {
|
||||
'distance_m': r['distance_m'],
|
||||
'point_count': r['point_count'],
|
||||
'device_id': r['device_id'],
|
||||
'app_instance_id': r['app_instance_id'],
|
||||
'deleted_at': _toUtc(r['deleted_at'] as String?),
|
||||
})
|
||||
.toList();
|
||||
@@ -225,7 +227,7 @@ class TsSyncService extends GetxService {
|
||||
/// Track-pontok: nagy mennyiség lehet, ezért 500-as batch-ekben, ciklusban,
|
||||
/// amíg el nem fogy. A szerveren nincs UPDATE policy (append-only), ezért
|
||||
/// ignoreDuplicates — az ismételt feltöltés csendben kimarad.
|
||||
Future<void> _pushTrackPoints() async {
|
||||
Future<void> pushTrackPoints() async {
|
||||
while (true) {
|
||||
final rows = await _db.pendingTrackPoints(limit: 500);
|
||||
if (rows.isEmpty) break;
|
||||
@@ -328,6 +330,7 @@ class TsSyncService extends GetxService {
|
||||
'note': r['note'] ?? '',
|
||||
'created_by': r['created_by'],
|
||||
'device_id': r['device_id'],
|
||||
'app_instance_id': r['app_instance_id'],
|
||||
'updated_at': r['updated_at'],
|
||||
'deleted_at': r['deleted_at'],
|
||||
'sync_status': 'synced',
|
||||
@@ -358,6 +361,7 @@ class TsSyncService extends GetxService {
|
||||
'is_local_only': 0,
|
||||
'created_by': r['created_by'],
|
||||
'device_id': r['device_id'],
|
||||
'app_instance_id': r['app_instance_id'],
|
||||
'updated_at': r['updated_at'],
|
||||
'deleted_at': r['deleted_at'],
|
||||
'sync_status': 'synced',
|
||||
|
||||
Reference in New Issue
Block a user