Files
flutterApp/lib/features/devices/domain/entities/device_entity.dart
2026-09-15 08:51:44 +08:00

65 lines
1.8 KiB
Dart

import 'package:equatable/equatable.dart';
import '../../../../core/utils/json_safe.dart';
class DeviceEntity extends Equatable {
final String deviceName;
final int productId;
final String productName;
final int tenantId;
final String tenantName;
final int status;
final String? activeTime;
final String? deviceAlias;
final int isBind; // 是否被绑定过
final int onlineStatus; // 在线状态
DeviceEntity({
required this.deviceName,
required this.productId,
required this.productName,
required this.tenantId,
required this.tenantName,
this.status = 0,
this.activeTime,
this.deviceAlias,
this.isBind = 0,
this.onlineStatus = 0,
});
factory DeviceEntity.fromJson(Map<String, dynamic> json) {
return DeviceEntity(
deviceName: JsonSafe.asString(json['deviceName']),
productId: JsonSafe.asInt(json['productId'], -1),
productName: JsonSafe.asString(json['productName'], "割草机产品MC700"),
tenantId: JsonSafe.asInt(json['tenantId']),
tenantName: JsonSafe.asString(json['tenantName']),
status: JsonSafe.asInt(json['status']),
activeTime: JsonSafe.asStringOrNull(json['activeTime']),
deviceAlias: JsonSafe.asStringOrNull(json['deviceAlias']),
isBind: JsonSafe.asInt(json['isBind']),
onlineStatus: JsonSafe.asInt(json['onlineStatus']),
);
}
String get displayName => (deviceAlias != null && deviceAlias!.isNotEmpty)
? deviceAlias!
: (deviceName.isNotEmpty ? deviceName : "未知设备");
// 辅助方法:判断是否在线
bool get isOnline => onlineStatus == 1;
@override
List<Object?> get props => [
deviceName,
productId,
productName,
tenantId,
tenantName,
status,
activeTime,
deviceAlias,
isBind,
onlineStatus,
];
}