mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-15 09:45:22 +00:00
150 lines
3.6 KiB
Dart
150 lines
3.6 KiB
Dart
import 'dart:convert';
|
|
|
|
class DeviceInfoModel {
|
|
final int activeTime;
|
|
final String category;
|
|
final String categoryName;
|
|
final int createTime;
|
|
final String gatewayId;
|
|
final String icon;
|
|
final String ip;
|
|
final String lat;
|
|
final String localKey;
|
|
final String lon;
|
|
final String model;
|
|
final String name;
|
|
final String nodeId;
|
|
final bool online;
|
|
final String ownerId;
|
|
final String productName;
|
|
final bool sub;
|
|
final String timeZone;
|
|
final int updateTime;
|
|
final String uuid;
|
|
final String productUuid;
|
|
final String productType;
|
|
final String permissionType;
|
|
final String macAddress;
|
|
final Subspace subspace;
|
|
|
|
DeviceInfoModel({
|
|
required this.activeTime,
|
|
required this.category,
|
|
required this.categoryName,
|
|
required this.createTime,
|
|
required this.gatewayId,
|
|
required this.icon,
|
|
required this.ip,
|
|
required this.lat,
|
|
required this.localKey,
|
|
required this.lon,
|
|
required this.model,
|
|
required this.name,
|
|
required this.nodeId,
|
|
required this.online,
|
|
required this.ownerId,
|
|
required this.productName,
|
|
required this.sub,
|
|
required this.timeZone,
|
|
required this.updateTime,
|
|
required this.uuid,
|
|
required this.productUuid,
|
|
required this.productType,
|
|
required this.permissionType,
|
|
required this.macAddress,
|
|
required this.subspace,
|
|
});
|
|
|
|
factory DeviceInfoModel.fromJson(Map<String, dynamic> json) {
|
|
return DeviceInfoModel(
|
|
activeTime: json['activeTime'],
|
|
category: json['category'],
|
|
categoryName: json['categoryName'],
|
|
createTime: json['createTime'],
|
|
gatewayId: json['gatewayId'],
|
|
icon: json['icon'],
|
|
ip: json['ip'] ?? "",
|
|
lat: json['lat'],
|
|
localKey: json['localKey'],
|
|
lon: json['lon'],
|
|
model: json['model'],
|
|
name: json['name'],
|
|
nodeId: json['nodeId'],
|
|
online: json['online'],
|
|
ownerId: json['ownerId'],
|
|
productName: json['productName'],
|
|
sub: json['sub'],
|
|
timeZone: json['timeZone'],
|
|
updateTime: json['updateTime'],
|
|
uuid: json['uuid'],
|
|
productUuid: json['productUuid'],
|
|
productType: json['productType'],
|
|
permissionType: json['permissionType'],
|
|
macAddress: json['macAddress'],
|
|
subspace: Subspace.fromJson(json['subspace']),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'activeTime': activeTime,
|
|
'category': category,
|
|
'categoryName': categoryName,
|
|
'createTime': createTime,
|
|
'gatewayId': gatewayId,
|
|
'icon': icon,
|
|
'ip': ip,
|
|
'lat': lat,
|
|
'localKey': localKey,
|
|
'lon': lon,
|
|
'model': model,
|
|
'name': name,
|
|
'nodeId': nodeId,
|
|
'online': online,
|
|
'ownerId': ownerId,
|
|
'productName': productName,
|
|
'sub': sub,
|
|
'timeZone': timeZone,
|
|
'updateTime': updateTime,
|
|
'uuid': uuid,
|
|
'productUuid': productUuid,
|
|
'productType': productType,
|
|
'permissionType': permissionType,
|
|
'macAddress': macAddress,
|
|
'subspace': subspace.toJson(),
|
|
};
|
|
}
|
|
}
|
|
|
|
class Subspace {
|
|
final String uuid;
|
|
final String createdAt;
|
|
final String updatedAt;
|
|
final String subspaceName;
|
|
|
|
Subspace({
|
|
required this.uuid,
|
|
required this.createdAt,
|
|
required this.updatedAt,
|
|
required this.subspaceName,
|
|
});
|
|
|
|
factory Subspace.fromJson(Map<String, dynamic> json) {
|
|
return Subspace(
|
|
uuid: json['uuid'],
|
|
createdAt: json['createdAt'],
|
|
updatedAt: json['updatedAt'],
|
|
subspaceName: json['subspaceName'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'uuid': uuid,
|
|
'createdAt': createdAt,
|
|
'updatedAt': updatedAt,
|
|
'subspaceName': subspaceName,
|
|
};
|
|
}
|
|
}
|