From d13cabb30dde55760858e494e2cd0813eceb8328 Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Wed, 18 Mar 2026 16:31:12 -0400 Subject: [PATCH] Round accuracyMeters before serialization Round accuracyMeters to an integer when building payloads to ensure consistent, integer accuracy values sent to the backend. Updates made in background_geofence_service.dart (location.accuracy.round()) and in ClockInArguments/ClockOutArguments (round accuracyMeters when present) so nullable values are rounded before serialization. --- .../lib/src/data/services/background_geofence_service.dart | 2 +- .../clock_in/lib/src/domain/arguments/clock_in_arguments.dart | 2 +- .../clock_in/lib/src/domain/arguments/clock_out_arguments.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/data/services/background_geofence_service.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/data/services/background_geofence_service.dart index aaf89787..97e7a6ab 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/data/services/background_geofence_service.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/data/services/background_geofence_service.dart @@ -174,7 +174,7 @@ Future _postLocationStream({ 'capturedAt': location.timestamp.toUtc().toIso8601String(), 'latitude': location.latitude, 'longitude': location.longitude, - 'accuracyMeters': location.accuracy, + 'accuracyMeters': location.accuracy.round(), }, ], 'metadata': {'source': 'background-workmanager'}, diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart index da737591..6704f522 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_in_arguments.dart @@ -71,7 +71,7 @@ class ClockInArguments extends UseCaseArgument { if (deviceId != null) 'deviceId': deviceId, if (latitude != null) 'latitude': latitude, if (longitude != null) 'longitude': longitude, - if (accuracyMeters != null) 'accuracyMeters': accuracyMeters, + if (accuracyMeters != null) 'accuracyMeters': accuracyMeters!.round(), if (capturedAt != null) 'capturedAt': capturedAt!.toUtc().toIso8601String(), if (overrideReason != null && overrideReason!.isNotEmpty) diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart index 3127d211..f562cb6c 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/domain/arguments/clock_out_arguments.dart @@ -75,7 +75,7 @@ class ClockOutArguments extends UseCaseArgument { if (deviceId != null) 'deviceId': deviceId, if (latitude != null) 'latitude': latitude, if (longitude != null) 'longitude': longitude, - if (accuracyMeters != null) 'accuracyMeters': accuracyMeters, + if (accuracyMeters != null) 'accuracyMeters': accuracyMeters!.round(), if (capturedAt != null) 'capturedAt': capturedAt!.toUtc().toIso8601String(), if (overrideReason != null && overrideReason!.isNotEmpty)