class Device { String? 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? parsedJson) { return Device( id: parsedJson?["nid"] ?? parsedJson?["id"]?.toString(), serialNumber: parsedJson?["sn"] ?? parsedJson?["assetSerialNo"], number: parsedJson?["asset_no"], brand: parsedJson?["modelDefinition"]["manufacturerName"] as String?, model: parsedJson?["modelDefinition"]["modelName"] as String?, 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)); }