init: rough companion app stub
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import 'position.dart';
|
||||
|
||||
enum SensorStatus { online, offline, provisioning }
|
||||
|
||||
class Sensor {
|
||||
const Sensor({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.floorId,
|
||||
required this.position,
|
||||
required this.status,
|
||||
this.lastSeen,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String floorId;
|
||||
final Position position;
|
||||
final SensorStatus status;
|
||||
final DateTime? lastSeen;
|
||||
|
||||
Sensor copyWith({
|
||||
String? name,
|
||||
Position? position,
|
||||
SensorStatus? status,
|
||||
DateTime? lastSeen,
|
||||
}) =>
|
||||
Sensor(
|
||||
id: id,
|
||||
name: name ?? this.name,
|
||||
floorId: floorId,
|
||||
position: position ?? this.position,
|
||||
status: status ?? this.status,
|
||||
lastSeen: lastSeen ?? this.lastSeen,
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'id': id,
|
||||
'name': name,
|
||||
'floor_id': floorId,
|
||||
'position': position.toJson(),
|
||||
'status': status.name,
|
||||
'last_seen': lastSeen?.toIso8601String(),
|
||||
};
|
||||
|
||||
factory Sensor.fromJson(Map<String, dynamic> json) => Sensor(
|
||||
id: json['id'] as String,
|
||||
name: json['name'] as String,
|
||||
floorId: json['floor_id'] as String,
|
||||
position: Position.fromJson(json['position'] as Map<String, dynamic>),
|
||||
status: SensorStatus.values.byName(json['status'] as String),
|
||||
lastSeen: json['last_seen'] == null
|
||||
? null
|
||||
: DateTime.parse(json['last_seen'] as String),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user