79 lines
2.4 KiB
Dart
79 lines
2.4 KiB
Dart
import 'package:maibu_satabot_v2/core/data/base_model.dart';
|
|
import 'package:maibu_satabot_v2/core/utils/json_safe.dart';
|
|
import 'package:maibu_satabot_v2/features/devices/domain/entities/device_entity.dart';
|
|
|
|
class DeviceModel extends DeviceEntity implements BaseModel {
|
|
DeviceModel({
|
|
required super.deviceName,
|
|
required super.productId,
|
|
required super.productName,
|
|
required super.tenantId,
|
|
required super.tenantName,
|
|
required super.status,
|
|
required super.activeTime,
|
|
required super.deviceAlias,
|
|
required super.isBind,
|
|
required super.onlineStatus,
|
|
});
|
|
|
|
factory DeviceModel.fromJson(Map<String, dynamic> json) {
|
|
return DeviceModel(
|
|
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']),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'deviceName': deviceName,
|
|
'productId': productId,
|
|
'productName': productName,
|
|
'tenantId': tenantId,
|
|
'tenantName': tenantName,
|
|
'status': status,
|
|
'activeTime': activeTime,
|
|
'deviceAlias': deviceAlias,
|
|
'isBind': isBind,
|
|
'onlineStatus': onlineStatus,
|
|
};
|
|
}
|
|
|
|
toEntity() {
|
|
return DeviceEntity(
|
|
deviceName: deviceName,
|
|
productId: productId,
|
|
productName: productName,
|
|
tenantId: tenantId,
|
|
tenantName: tenantName,
|
|
status: status,
|
|
activeTime: activeTime,
|
|
deviceAlias: deviceAlias,
|
|
isBind: isBind,
|
|
onlineStatus: onlineStatus,
|
|
);
|
|
}
|
|
|
|
factory DeviceModel.fromEntity(DeviceEntity entity) {
|
|
return DeviceModel(
|
|
deviceName: entity.deviceName,
|
|
productId: entity.productId,
|
|
productName: entity.productName,
|
|
tenantId: entity.tenantId,
|
|
tenantName: entity.tenantName,
|
|
status: entity.status,
|
|
activeTime: entity.activeTime,
|
|
deviceAlias: entity.deviceAlias,
|
|
isBind: entity.isBind,
|
|
onlineStatus: entity.onlineStatus,
|
|
);
|
|
}
|
|
}
|