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.dart

68 lines
1.9 KiB
Dart

class Device{
int id;
String serialNumber;
String number;
String brand;
String model;
DateTime productionDate;
DateTime supplyDate;
DateTime installDate;
DateTime receivingDate;
DateTime operationDate;
DateTime warrantyDate;
Device({
this.id,
this.serialNumber,
this.number,
this.brand,
this.model,
this.productionDate,
this.supplyDate,
this.installDate,
this.receivingDate,
this.operationDate,
this.warrantyDate,
});
factory Device.fromJson(Map<String,dynamic> parsedJson){
return Device(
id: parsedJson["id"],
serialNumber: parsedJson["assetSerialNo"],
number: parsedJson["assetNumber"],
brand: parsedJson["modelDefinition"] == null ? "" :
parsedJson["modelDefinition"]["manufacturerName"],
model: parsedJson["modelDefinition"] == null ? "" :
parsedJson["modelDefinition"]["modelName"],
productionDate: getDateFromString(parsedJson["production_date"]),
supplyDate: getDateFromString(parsedJson["supply_date "]),
installDate: getDateFromString(parsedJson["install_date "]),
receivingDate: getDateFromString(parsedJson["receving_date "]),
operationDate: getDateFromString(parsedJson["operation_date "]),
warrantyDate: getDateFromString(parsedJson["warranty_date "]),
);
}
factory Device.fromDevice(Device device){
return Device(
id: device.id,
serialNumber: device.serialNumber,
number: device.number,
brand: device.brand,
model: device.model,
productionDate: device.productionDate,
supplyDate: device.supplyDate,
installDate: device.installDate,
receivingDate: device.receivingDate,
operationDate: device.operationDate,
warrantyDate: device.warrantyDate,
);
}
}
DateTime getDateFromString(String unixDate){
if(unixDate == null)
return null;
return DateTime.fromMillisecondsSinceEpoch(
int.parse(unixDate));
}