You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/models/device/device_transfer.dart

54 lines
1.3 KiB
Dart

3 years ago
import 'device.dart';
import 'device_transfer_info.dart';
3 years ago
3 years ago
class DeviceTransfer {
String? id;
String? userId;
String? title;
Device? device;
DeviceTransferInfo? sender;
DeviceTransferInfo? receiver;
3 years ago
DeviceTransfer({
this.id,
this.device,
this.title,
this.userId,
this.sender,
this.receiver,
});
3 years ago
bool validate() {
if (device == null) return false;
return receiver?.validate() ?? false;
3 years ago
}
3 years ago
fromDeviceTransfer(DeviceTransfer old) {
3 years ago
id = old.id;
title = old.title;
userId = old.userId;
3 years ago
device = old.device != null ? Device.fromDevice(old.device!) : null;
3 years ago
final sender = DeviceTransferInfo();
3 years ago
if (old.sender != null) {
sender.fromDetails(old.sender!);
}
3 years ago
this.sender = sender;
final receiver = DeviceTransferInfo();
3 years ago
if (old.receiver != null) {
receiver.fromDetails(old.receiver!);
}
3 years ago
this.receiver = receiver;
}
3 years ago
factory DeviceTransfer.fromJson(Map<String, dynamic> parsedJson) {
3 years ago
return DeviceTransfer(
id: parsedJson["id"],
title: parsedJson["title"],
userId: parsedJson["uid"],
device: Device.fromJson(parsedJson["eq_sn"]),
3 years ago
sender: DeviceTransferInfo.fromJson(parsedJson, "sender_"),
receiver: DeviceTransferInfo.fromJson(parsedJson, "receiver_"),
3 years ago
);
}
}