feat: revamp sensor add flow

This commit is contained in:
2026-05-16 12:00:55 +02:00
parent be6ac42059
commit f37176cce5
12 changed files with 478 additions and 186 deletions
@@ -1,11 +1,20 @@
import '../../domain/models/sensor.dart';
import '../sources/localiser/realtime_data_client.dart';
import '../sources/localiser/sensor_client.dart';
import 'sensor_repository.dart';
class PhoenixSensorRepository implements SensorRepository {
const PhoenixSensorRepository({required this.client});
const PhoenixSensorRepository({
required this.client,
required this.realtime,
});
final SensorClient client;
final RealtimeDataClient realtime;
@override
Future<Sensor> createSensor(String sensorId, {String? name}) async =>
Sensor.fromJson(await client.createSensor(sensorId, name: name));
@override
Future<List<Sensor>> getSensors() async {
@@ -35,11 +44,16 @@ class PhoenixSensorRepository implements SensorRepository {
@override
Future<Sensor> placeSensor(int id,
{required int roomId, required double x, required double y}) async =>
{required int roomId, required double x, required double y}) async =>
Sensor.fromJson(
await client.placeSensor(id, {'room_id': roomId, 'x': x, 'y': y}));
@override
Future<Sensor> unplaceSensor(int id) async =>
Sensor.fromJson(await client.unplaceSensor(id));
@override
Stream<Map<String, dynamic>> sensorEvents() => realtime
.channelMessages('sensors')
.map((m) => {'event': m.event, ...m.payload});
}