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 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 get props => [ deviceName, productId, productName, tenantId, tenantName, status, activeTime, deviceAlias, isBind, onlineStatus, ]; }