Track online szinkronizáció refraktorálása

This commit is contained in:
2026-07-08 23:29:22 +02:00
parent 1ab656585b
commit d23f736ead
7 changed files with 131 additions and 154 deletions
+8 -4
View File
@@ -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',