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

75 lines
2.3 KiB
Dart

3 years ago
import 'package:http/http.dart';
import 'package:test_sa/models/department.dart';
import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/hospital.dart';
import 'package:test_sa/models/lookup.dart';
3 years ago
class DeviceTransferInfo{
String userId;
String comment;
Hospital client;
Department department;
String workingHours;
String travelingHours;
String name;
String signature;
Lookup status;
3 years ago
DeviceTransferInfo({
this.userId,
this.comment,
this.department,
this.client,
this.name,
this.travelingHours,
this.workingHours,
this.signature,
this.status,
});
Map<String,String>toJson(bool isSender){
Map<String,String> body = {};
final baseKey = isSender ? "sender_" : "receiver_";
if(comment != null && comment.isNotEmpty) body["${baseKey}comment"] = comment;
if(workingHours != null && workingHours.isNotEmpty) body["${baseKey}working_hours"] = workingHours;
if(travelingHours != null && travelingHours.isNotEmpty) body["${baseKey}travel_hours"] = comment;
if(status != null) body["${baseKey}status"] = status.id.toString();
if(signature != null && signature.isNotEmpty) body["${baseKey}image"] = signature;
return body;
}
bool validate(){
if(client == null) return false;
if(department == null) return false;
return true;
}
fromDetails(DeviceTransferInfo old,{bool withSignature = true}){
userId = old.userId;
name = old.name;
client = Hospital.fromHospital(old.client);
department = Department.fromDepartment(old.department);
workingHours = old.workingHours;
travelingHours = old.travelingHours;
comment = old.comment;
if(withSignature) signature = old.signature;
status = old.status;
}
factory DeviceTransferInfo.fromJson(Map<String,dynamic> parsedJson,String key){
return DeviceTransferInfo(
workingHours: parsedJson["${key}working_hours"],
travelingHours: parsedJson["${key}travel_hours"],
name: parsedJson["${key}name"],
signature: parsedJson["${key}image"],
userId: parsedJson["${key}id"],
comment: parsedJson["${key}comment"],
client: Hospital.fromJson(parsedJson["${key}client"]),
department: Department.fromJson(parsedJson["${key}department"]),
status: Lookup.fromJson(parsedJson["${key}status"]),
3 years ago
);
}
}