import '../department.dart'; import '../hospital.dart'; import '../lookup.dart'; class DeviceTransferInfo { String? userId; String? comment; Hospital? client; Department? department; String? workingHours; String? travelingHours; String? name; String? signature; Lookup? status; DeviceTransferInfo({ this.userId, this.comment, this.department, this.client, this.name, this.travelingHours, this.workingHours, this.signature, this.status, }); Map toJson(bool isSender) { Map body = {}; final baseKey = isSender ? "sender_" : "receiver_"; if (comment?.isNotEmpty ?? false) body["${baseKey}comment"] = comment!; if (workingHours?.isNotEmpty ?? false) { body["${baseKey}working_hours"] = workingHours!; } if (travelingHours?.isNotEmpty ?? false) { body["${baseKey}travel_hours"] = comment!; } final status = this.status; if (status != null) body["${baseKey}status"] = status.id.toString(); if (signature?.isNotEmpty ?? false) 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 = old?.client != null ? Hospital.fromHospital(old?.client) : null; department = department != null ? Department.fromDepartment(old?.department!) : null; workingHours = old?.workingHours; travelingHours = old?.travelingHours; comment = old?.comment; if (withSignature) signature = old?.signature; status = old?.status; } factory DeviceTransferInfo.fromJson( Map 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"]), ); } }