From f8df267b9c13e9efe0b65a545813c13510f8b9d4 Mon Sep 17 00:00:00 2001 From: dvdrw Date: Wed, 13 May 2026 20:30:44 +0200 Subject: [PATCH] fix: Sensor schema drift with upstream API --- lib/data/repositories/phoenix_sensor_repository.dart | 3 +-- lib/data/repositories/sensor_repository.dart | 2 +- lib/domain/models/sensor.dart | 12 ++++-------- lib/features/sensors/sensor_detail_screen.dart | 5 ----- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/lib/data/repositories/phoenix_sensor_repository.dart b/lib/data/repositories/phoenix_sensor_repository.dart index 6195e7d..21307a7 100644 --- a/lib/data/repositories/phoenix_sensor_repository.dart +++ b/lib/data/repositories/phoenix_sensor_repository.dart @@ -24,10 +24,9 @@ class PhoenixSensorRepository implements SensorRepository { Sensor.fromJson(await client.getSensor(id)); @override - Future updateSensor(int id, {String? name, double? rssiRef}) async { + Future updateSensor(int id, {String? name}) async { final params = {}; if (name != null) params['name'] = name; - if (rssiRef != null) params['rssi_ref'] = rssiRef; return Sensor.fromJson(await client.updateSensor(id, params)); } diff --git a/lib/data/repositories/sensor_repository.dart b/lib/data/repositories/sensor_repository.dart index 028078f..e6bdd00 100644 --- a/lib/data/repositories/sensor_repository.dart +++ b/lib/data/repositories/sensor_repository.dart @@ -4,7 +4,7 @@ abstract class SensorRepository { Future> getSensors(); Future> getUnplacedSensors(); Future getSensor(int id); - Future updateSensor(int id, {String? name, double? rssiRef}); + Future updateSensor(int id, {String? name}); Future deleteSensor(int id); Future placeSensor(int id, {required int roomId, required double x, required double y}); diff --git a/lib/domain/models/sensor.dart b/lib/domain/models/sensor.dart index c34b169..055fd81 100644 --- a/lib/domain/models/sensor.dart +++ b/lib/domain/models/sensor.dart @@ -6,16 +6,14 @@ class Sensor { this.roomId, this.x, this.y, - this.rssiRef, }); final int id; final String sensorId; // BLE MAC / provisioning device ID final String? name; // human-readable label final int? roomId; - final double? x; // floor_x from API - final double? y; // floor_y from API - final double? rssiRef; + final double? x; // room relative + final double? y; // room relative bool get isPlaced => roomId != null; String get displayName => name ?? sensorId; @@ -25,9 +23,8 @@ class Sensor { sensorId: json['sensor_id'] as String, name: json['name'] as String?, roomId: json['room_id'] as int?, - x: (json['floor_x'] as num?)?.toDouble(), - y: (json['floor_y'] as num?)?.toDouble(), - rssiRef: (json['rssi_ref'] as num?)?.toDouble(), + x: (json['x'] as num?)?.toDouble(), + y: (json['y'] as num?)?.toDouble(), ); Sensor copyWith({ @@ -44,6 +41,5 @@ class Sensor { roomId: roomId ?? this.roomId, x: x ?? this.x, y: y ?? this.y, - rssiRef: rssiRef ?? this.rssiRef, ); } diff --git a/lib/features/sensors/sensor_detail_screen.dart b/lib/features/sensors/sensor_detail_screen.dart index 80088b0..98cd7a4 100644 --- a/lib/features/sensors/sensor_detail_screen.dart +++ b/lib/features/sensors/sensor_detail_screen.dart @@ -49,11 +49,6 @@ class _Body extends ConsumerWidget { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _InfoRow(label: 'Device ID', value: sensor.sensorId), - if (sensor.rssiRef != null) - _InfoRow( - label: 'RSSI reference', - value: '${sensor.rssiRef!.toStringAsFixed(1)} dBm', - ), _InfoRow( label: 'Floor position', value: sensor.isPlaced