Files
platforms/apps/user_app/lib/domain/models/device_group.dart

35 lines
1.1 KiB
Dart
Raw Normal View History

// 功能解析本人设备分组及其公开设备标识版本1.0.0。
import 'client_models.dart';
/// 设备分组只表达用户自定义归类,不代表设备在线或可控制。
class DeviceGroup {
const DeviceGroup({
required this.identity,
required this.name,
required this.sortNo,
required this.deviceIdentities,
});
final String identity;
final String name;
final int sortNo;
final Set<String> deviceIdentities;
factory DeviceGroup.fromJson(Map<String, Object?> json) => DeviceGroup(
identity: json['identity'] as String? ?? '',
name: json['name'] as String? ?? '',
sortNo: (json['sort_no'] as num?)?.toInt() ?? 0,
deviceIdentities: {
for (final value in json['device_identities'] as List? ?? const [])
if (value is String && value.isNotEmpty) value,
},
);
}
/// 同一次页面刷新读取的设备与分组快照,避免两次渲染状态互相错配。
class DeviceCatalog {
const DeviceCatalog({required this.devices, required this.groups});
final List<ClientRecord> devices;
final List<DeviceGroup> groups;
}