66 lines
1.7 KiB
Dart
66 lines
1.7 KiB
Dart
import 'package:equatable/equatable.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,
|
|
});
|
|
|
|
// 方便从后端 JSON 转换
|
|
factory DeviceEntity.fromJson(Map<String, dynamic> json) {
|
|
return DeviceEntity(
|
|
deviceName: json['deviceName'],
|
|
productId: json['productId'] ?? -1,
|
|
productName: json['productName'] ?? "割草机产品MC700",
|
|
tenantId: json['tenantId'],
|
|
tenantName: json['tenantName'],
|
|
status: json['status'] ?? 0,
|
|
activeTime: json['activeTime'],
|
|
deviceAlias: json['deviceAlias'],
|
|
isBind: json['isBind'] ?? 0,
|
|
onlineStatus: json['onlineStatus'] ?? 0,
|
|
);
|
|
}
|
|
|
|
// 获取显示的名称(优先别名,没有则用设备名)
|
|
String get displayName => (deviceAlias != null && deviceAlias!.isNotEmpty)
|
|
? deviceAlias!
|
|
: (deviceName ?? "未知设备");
|
|
|
|
// 辅助方法:判断是否在线
|
|
bool get isOnline => onlineStatus == 1;
|
|
|
|
@override
|
|
List<Object?> get props => [
|
|
deviceName,
|
|
productId,
|
|
productName,
|
|
tenantId,
|
|
tenantName,
|
|
status,
|
|
activeTime,
|
|
deviceAlias,
|
|
isBind,
|
|
onlineStatus,
|
|
];
|
|
}
|