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

122 lines
3.3 KiB
Dart

3 years ago
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
import 'package:test_sa/models/department.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/hospital.dart';
class User{
String id;
String userName;
String password;
String email;
Hospital hospital;
Department department;
UsersTypes type;
String phoneNumber;
String whatsApp;
String token;
bool isActive;
3 years ago
DateTime tokenLife;
3 years ago
User({
this.id,
this.userName = "",
this.email = "",
this.password = "",
this.phoneNumber = "",
this.hospital,
this.department,
this.type,
this.whatsApp,
this.token,
3 years ago
this.tokenLife,
3 years ago
this.isActive = false
});
Future<Map<String, dynamic>> toLoginJson() async {
if(FirebaseNotificationManger.token == null)
await FirebaseNotificationManger.getToken();
return {
"username":userName,
3 years ago
"password":password,
3 years ago
"firebase_token": FirebaseNotificationManger?.token ?? "",
};
}
Map<String,dynamic> toUpdateProfileJson(){
Map<String,dynamic> jsonObject ={};
3 years ago
if(department?.id != null)
3 years ago
jsonObject["department"] = department.id;
if(whatsApp != null && whatsApp.isNotEmpty)
jsonObject["whatsapp"] = whatsApp;
if(phoneNumber != null && phoneNumber.isNotEmpty)
jsonObject["phone"] = phoneNumber;
return jsonObject;
}
Future<Map<String, dynamic>> toRegisterJson() async {
if(FirebaseNotificationManger.token == null)
await FirebaseNotificationManger.getToken();
return {
"username": userName,
"email":email,
"whatsapp":whatsApp,
"client":hospital.id,
"department":department?.id,
"phone":phoneNumber,
"pass":password,
"firebase_token": FirebaseNotificationManger?.token ?? "",
};
}
Map<String,dynamic> toJson(){
return {
3 years ago
"userID":id,
"username": userName,
3 years ago
"email":email,
"token":token,
3 years ago
"phoneNumber":phoneNumber,
3 years ago
"whatsapp":whatsApp,
3 years ago
"client_id":hospital?.id,
3 years ago
"client_name":hospital?.name,
3 years ago
"department_id":department?.id,
3 years ago
"department_name":department?.name,
3 years ago
//"password":password,
"tokenlife":tokenLife.toIso8601String(),
"active":isActive,
"userRoles": type == UsersTypes.engineer
? "value: R-6" : "value: R-5" ,
3 years ago
// "token":token, pass is token
};
}
factory User.fromJson(Map<String,dynamic> parsedJson){
UsersTypes type;
3 years ago
if(parsedJson["userRoles"].toString().contains("value: R-4")
|| parsedJson["userRoles"].toString().contains("value: R-5")
|| parsedJson["userRoles"].toString().contains("value: R-7")){
type = UsersTypes.normal_user;
} else {
type = UsersTypes.engineer;
3 years ago
}
return User(
3 years ago
id: parsedJson["userID"],
userName: parsedJson["username"],
email: parsedJson["email"],
3 years ago
hospital: Hospital(
id: parsedJson["client_id"],
name: parsedJson["client_name"]
),
3 years ago
department: Department(
3 years ago
id: parsedJson["department_id"],
3 years ago
name: parsedJson["department_name"],
),
3 years ago
phoneNumber: parsedJson["phoneNumber"],
whatsApp: parsedJson["phoneNumber"],
3 years ago
token: parsedJson["token"],
3 years ago
isActive: parsedJson["isAuthenticated"],
tokenLife: DateTime.tryParse(parsedJson["tokenlife"]??""),
3 years ago
type:type
);
}
}