class UserModel { FcmTokenModel fcmTokens = FcmTokenModel.empty(); LocationModel locationModel = LocationModel.empty(); String id = ""; String userModelName = ""; String name = ""; String version = "" ; String email = "" ; String phoneNumber = ""; bool active = false; String role = "" ; String profilePictureUrl = "" ; String deviceId = "" ; String verificationCode = "" ; bool isVerified = false; bool approved = false; bool blocked = false; String createdAt = "" ; String updatedAt = "" ; int v = -1; String password = "" ; UserSettingsModel userSettingsModel = UserSettingsModel.empty(); bool newUser = false; //old fields for UI String profilePicture = ""; String homeAddress = ""; String nextOfKin = ""; String diagnosisHistory = ""; String diagnosisDate = ""; String aboutPatient = ""; UserModel.empty(); UserModel({ required this.name, required this.profilePicture, required this.phoneNumber, required this.homeAddress, required this.nextOfKin, required this.diagnosisHistory, required this.diagnosisDate, required this.aboutPatient, this.role ="", }); @override String toString() { return 'UserModel{fcmTokens: $fcmTokens, locationModel: $locationModel, id: $id, userModelName: $userModelName, name: $name, version: $version, email: $email, phoneNumber: $phoneNumber, active: $active, role: $role, profilePictureUrl: $profilePictureUrl, deviceId: $deviceId, verificationCode: $verificationCode, isVerified: $isVerified, approved: $approved, blocked: $blocked, createdAt: $createdAt, updatedAt: $updatedAt, v: $v, password: $password, userSettingsModel: $userSettingsModel, newUser: $newUser, profilePicture: $profilePicture, homeAddress: $homeAddress, nextOfKin: $nextOfKin, diagnosisHistory: $diagnosisHistory, diagnosisDate: $diagnosisDate, aboutPatient: $aboutPatient}'; } UserModel.fromJson(Map json){ fcmTokens = FcmTokenModel.fromJson(json['fcm_tokens']??""); locationModel = LocationModel.fromJson(json['location']??""); id = json["_id"]??""; userModelName = json["userModelName"]??""; name = json["name"]??""; version = json["version"]??''; email = json["email"]??''; phoneNumber = json["phoneNumber"]??''; active = json["active"]??false; role = json["role"]??''; profilePictureUrl = json["profile_picture_url"]??''; deviceId = json["deviceId"]??''; verificationCode = json["verification_code"]??''; isVerified = json["is_verified"]??false; approved = json["approved"]??false; blocked = json["blocked"]??false; createdAt = json["createdAt"]??''; updatedAt = json["updatedAt"]??''; v = json["__v"]??-1; password = json["password"]??''; userSettingsModel = UserSettingsModel.fromJson(json["userSettings"]??""); newUser = json['new_user']; } Map toJson(){ Map json = {}; json['fcm_tokens'] = fcmTokens.toJson(); json['location'] = locationModel.toJson(); json["_id"] = id; json["userModelName"] = userModelName; json["name"] = name; json["version"] = version; json["email"] = email; json["phoneNumber"] = phoneNumber; json["active"] = active; json["role"] = role; json["profile_picture_url"] = profilePictureUrl; json["deviceId"] = deviceId; json["verification_code"] = verificationCode; json["is_verified"] = isVerified ; json["approved"] = approved ; json["blocked"] = blocked ; json["createdAt"] = createdAt; json["updatedAt"] = updatedAt; json["__v"] = v; json["password"] = password; json["userSettings"] = userSettingsModel.toJson(); json['new_user'] = newUser; return json; } } class FcmTokenModel{ String token = ""; String deviceType = ""; FcmTokenModel.empty(); FcmTokenModel.fromJson(Map json){ token = json["token"] ?? ""; deviceType = json["deviceType"] ?? ""; } Map toJson(){ Map json = {}; json["token"] = token ; json["deviceType"] = deviceType ; return json; } @override String toString() { return 'FcmTokenModel{token: $token, deviceType: $deviceType}'; } } class LocationModel{ String type = ""; List coordinates = []; LocationModel.empty(); LocationModel.fromJson(Map json){ type = json["type"]??""; coordinates = json["coordinates"]??[]; } double getLatitude(){return coordinates.first;} double getLongitude(){return coordinates.last;} Map toJson(){ Map json = {}; json["type"] = type ; json["coordinates"] = coordinates ; return json; } @override String toString() { return 'LocationModel{type: $type, coordinates: $coordinates}'; } } class UserSettingsModel{ String id = ""; String user = ""; bool active = false; String createdAt = ""; String updatedAt = ""; String v = ""; NotificationSettings notificationSettings = NotificationSettings.empty(); UserSettingsModel.empty(); UserSettingsModel.fromJson(Map json){ id = json["id"]??""; user = json["user"]??""; active = json["active"]??false; createdAt = json["createdAt"]??""; updatedAt = json["updatedAt"]??""; v = json["v"]??""; notificationSettings = NotificationSettings.fromJson(json["notificationSettings"] ?? {"": ""}); } Map toJson(){ Map json = {}; json["id"] = id; json["user"] = user; json["active"] = active; json["createdAt"] = createdAt; json["updatedAt"] = updatedAt; json["v"] = v; return json; } @override String toString() { return 'UserSettingsModel{id: $id, user: $user, active: $active, createdAt: $createdAt, updatedAt: $updatedAt, v: $v, notificationSettings: $notificationSettings}'; } } class NotificationSettings{ bool showActive = false; bool pauseNotification = false; String pauseDuration = ""; String durationUnit = ""; NotificationSettings.empty(); NotificationSettings.fromJson(Map json){ showActive = json["showActive"]??false; pauseNotification = json["pauseNotification"]??false; pauseDuration = json["pauseDuration"]??""; durationUnit = json["durationUnit"]??""; } Map toJson(){ Map json = {}; json["showActive"] = showActive; json["pauseNotification"] = pauseNotification; json["pauseDuration"] = pauseDuration; json["durationUnit"] = durationUnit; return json; } @override String toString() { return 'NotificationSettings{showActive: $showActive, pauseNotification: $pauseNotification, pauseDuration: $pauseDuration, durationUnit: $durationUnit}'; } }