parent
a219d81ccc
commit
d0f083ce22
@ -1,108 +1,219 @@
|
|||||||
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
|
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/enums/user_types.dart';
|
||||||
import 'package:test_sa/models/hospital.dart';
|
|
||||||
|
|
||||||
class User {
|
class User {
|
||||||
|
int clientId;
|
||||||
|
String clientName;
|
||||||
|
int departmentId;
|
||||||
|
String departmentName;
|
||||||
|
String message;
|
||||||
|
String username;
|
||||||
|
String userID;
|
||||||
|
String email;
|
||||||
|
String password;
|
||||||
|
String token;
|
||||||
|
dynamic roles;
|
||||||
|
List<UserRoles> userRoles;
|
||||||
|
String tokenlife;
|
||||||
|
bool isAuthenticated;
|
||||||
|
bool hasError;
|
||||||
|
String profilePhotoName;
|
||||||
String id;
|
String id;
|
||||||
String userName;
|
String userName;
|
||||||
String password;
|
String normalizedUserName;
|
||||||
String email;
|
String normalizedEmail;
|
||||||
Hospital hospital;
|
bool emailConfirmed;
|
||||||
Department department;
|
dynamic passwordHash;
|
||||||
UsersTypes type;
|
String securityStamp;
|
||||||
|
String concurrencyStamp;
|
||||||
String phoneNumber;
|
String phoneNumber;
|
||||||
String whatsApp;
|
bool phoneNumberConfirmed;
|
||||||
String token;
|
bool twoFactorEnabled;
|
||||||
bool isActive;
|
dynamic lockoutEnd;
|
||||||
DateTime tokenLife;
|
bool lockoutEnabled;
|
||||||
|
int accessFailedCount;
|
||||||
|
|
||||||
User(
|
User({
|
||||||
{this.id,
|
this.clientId,
|
||||||
this.userName = "",
|
this.clientName,
|
||||||
this.email = "",
|
this.departmentId,
|
||||||
this.password = "",
|
this.departmentName,
|
||||||
this.phoneNumber = "",
|
this.message,
|
||||||
this.hospital,
|
this.username,
|
||||||
this.department,
|
this.userID,
|
||||||
this.type,
|
this.email,
|
||||||
this.whatsApp,
|
this.password,
|
||||||
this.token,
|
this.token,
|
||||||
this.tokenLife,
|
this.roles,
|
||||||
this.isActive = false});
|
this.userRoles,
|
||||||
|
this.tokenlife,
|
||||||
|
this.isAuthenticated,
|
||||||
|
this.hasError,
|
||||||
|
this.profilePhotoName,
|
||||||
|
this.id,
|
||||||
|
this.userName,
|
||||||
|
this.normalizedUserName,
|
||||||
|
this.normalizedEmail,
|
||||||
|
this.emailConfirmed,
|
||||||
|
this.passwordHash,
|
||||||
|
this.securityStamp,
|
||||||
|
this.concurrencyStamp,
|
||||||
|
this.phoneNumber,
|
||||||
|
this.phoneNumberConfirmed,
|
||||||
|
this.twoFactorEnabled,
|
||||||
|
this.lockoutEnd,
|
||||||
|
this.lockoutEnabled,
|
||||||
|
this.accessFailedCount,
|
||||||
|
});
|
||||||
|
|
||||||
Future<Map<String, dynamic>> toLoginJson() async {
|
Future<Map<String, dynamic>> toLoginJson() async {
|
||||||
if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
|
if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
|
||||||
return {
|
return {
|
||||||
"username": userName,
|
"username": userName,
|
||||||
"password": password,
|
"password": password,
|
||||||
"firebase_token": FirebaseNotificationManger?.token ?? "",
|
"fireBaseToken": FirebaseNotificationManger?.token ?? "",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UsersTypes get type {
|
||||||
|
switch (userRoles.first.name) {
|
||||||
|
case "Engineer":
|
||||||
|
return UsersTypes.engineer;
|
||||||
|
case "Nurse":
|
||||||
|
return UsersTypes.normal_user;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toUpdateProfileJson() {
|
Map<String, dynamic> toUpdateProfileJson() {
|
||||||
Map<String, dynamic> jsonObject = {};
|
Map<String, dynamic> jsonObject = {};
|
||||||
if (department?.id != null) jsonObject["department"] = department.id;
|
// if (departmentId != null) jsonObject["department"] = departmentId;
|
||||||
if (whatsApp != null && whatsApp.isNotEmpty) jsonObject["whatsapp"] = whatsApp;
|
// if (whatsApp != null && whatsApp.isNotEmpty) jsonObject["whatsapp"] = whatsApp;
|
||||||
if (phoneNumber != null && phoneNumber.isNotEmpty) jsonObject["phone"] = phoneNumber;
|
// if (phoneNumber != null && phoneNumber.isNotEmpty) jsonObject["phone"] = phoneNumber;
|
||||||
return jsonObject;
|
return jsonObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Map<String, dynamic>> toRegisterJson() async {
|
Future<Map<String, dynamic>> toRegisterJson() async {
|
||||||
if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
|
// if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
|
||||||
return {
|
return {
|
||||||
"username": userName,
|
// "username": userName,
|
||||||
"email": email,
|
// "email": email,
|
||||||
"whatsapp": whatsApp,
|
// "whatsapp": whatsApp,
|
||||||
"client": hospital.id,
|
// "client": hospital.id,
|
||||||
"department": department?.id,
|
// "department": department?.id,
|
||||||
"phone": phoneNumber,
|
// "phone": phoneNumber,
|
||||||
"pass": password,
|
// "pass": password,
|
||||||
"firebase_token": FirebaseNotificationManger?.token ?? "",
|
// "firebase_token": FirebaseNotificationManger?.token ?? "",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
return {
|
final map = <String, dynamic>{};
|
||||||
"userID": id,
|
map['client_id'] = clientId;
|
||||||
"username": userName,
|
map['client_name'] = clientName;
|
||||||
"email": email,
|
map['department_id'] = departmentId;
|
||||||
"token": token,
|
map['department_name'] = departmentName;
|
||||||
"phoneNumber": phoneNumber,
|
map['message'] = message;
|
||||||
"whatsapp": whatsApp,
|
map['username'] = username;
|
||||||
"client_id": hospital?.id,
|
map['userID'] = userID;
|
||||||
"client_name": hospital?.name,
|
map['email'] = email;
|
||||||
"department_id": department?.id,
|
map['password'] = password;
|
||||||
"department_name": department?.name,
|
map['token'] = token;
|
||||||
//"password":password,
|
map['roles'] = roles;
|
||||||
"tokenlife": tokenLife.toIso8601String(),
|
if (userRoles != null) {
|
||||||
"active": isActive,
|
map['userRoles'] = userRoles.map((v) => v.toJson()).toList();
|
||||||
"userRoles": type == UsersTypes.engineer ? "value: R-6" : "value: R-5",
|
}
|
||||||
// "token":token, pass is token
|
map['tokenlife'] = tokenlife;
|
||||||
};
|
map['isAuthenticated'] = isAuthenticated;
|
||||||
|
map['hasError'] = hasError;
|
||||||
|
map['profilePhotoName'] = profilePhotoName;
|
||||||
|
map['id'] = id;
|
||||||
|
map['userName'] = userName;
|
||||||
|
map['normalizedUserName'] = normalizedUserName;
|
||||||
|
map['normalizedEmail'] = normalizedEmail;
|
||||||
|
map['emailConfirmed'] = emailConfirmed;
|
||||||
|
map['passwordHash'] = passwordHash;
|
||||||
|
map['securityStamp'] = securityStamp;
|
||||||
|
map['concurrencyStamp'] = concurrencyStamp;
|
||||||
|
map['phoneNumber'] = phoneNumber;
|
||||||
|
map['phoneNumberConfirmed'] = phoneNumberConfirmed;
|
||||||
|
map['twoFactorEnabled'] = twoFactorEnabled;
|
||||||
|
map['lockoutEnd'] = lockoutEnd;
|
||||||
|
map['lockoutEnabled'] = lockoutEnabled;
|
||||||
|
map['accessFailedCount'] = accessFailedCount;
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
factory User.fromJson(Map<String, dynamic> parsedJson) {
|
User.fromJson(dynamic json) {
|
||||||
UsersTypes type;
|
clientId = json['client_id'];
|
||||||
if (parsedJson["userRoles"].toString().contains("value: R-4") || parsedJson["userRoles"].toString().contains("value: R-5") || parsedJson["userRoles"].toString().contains("value: R-7")) {
|
clientName = json['client_name'];
|
||||||
type = UsersTypes.normal_user;
|
departmentId = json['department_id'];
|
||||||
} else {
|
departmentName = json['department_name'];
|
||||||
type = UsersTypes.engineer;
|
message = json['message'];
|
||||||
|
username = json['username'];
|
||||||
|
userID = json['userID'];
|
||||||
|
email = json['email'];
|
||||||
|
password = json['password'];
|
||||||
|
token = json['token'];
|
||||||
|
roles = json['roles'];
|
||||||
|
if (json['userRoles'] != null) {
|
||||||
|
userRoles = [];
|
||||||
|
json['userRoles'].forEach((v) {
|
||||||
|
userRoles.add(UserRoles.fromJson(v));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return User(
|
tokenlife = json['tokenlife'];
|
||||||
id: parsedJson["userID"],
|
isAuthenticated = json['isAuthenticated'];
|
||||||
userName: parsedJson["username"],
|
hasError = json['hasError'];
|
||||||
email: parsedJson["email"],
|
profilePhotoName = json['profilePhotoName'];
|
||||||
hospital: Hospital(id: parsedJson["client_id"], name: parsedJson["client_name"]),
|
id = json['id'];
|
||||||
department: Department(
|
userName = json['userName'];
|
||||||
id: parsedJson["department_id"],
|
normalizedUserName = json['normalizedUserName'];
|
||||||
name: parsedJson["department_name"],
|
normalizedEmail = json['normalizedEmail'];
|
||||||
),
|
emailConfirmed = json['emailConfirmed'];
|
||||||
phoneNumber: parsedJson["phoneNumber"],
|
passwordHash = json['passwordHash'];
|
||||||
whatsApp: parsedJson["phoneNumber"],
|
securityStamp = json['securityStamp'];
|
||||||
token: parsedJson["token"],
|
concurrencyStamp = json['concurrencyStamp'];
|
||||||
isActive: parsedJson["isAuthenticated"],
|
phoneNumber = json['phoneNumber'];
|
||||||
tokenLife: DateTime.tryParse(parsedJson["tokenlife"] ?? ""),
|
phoneNumberConfirmed = json['phoneNumberConfirmed'];
|
||||||
type: type);
|
twoFactorEnabled = json['twoFactorEnabled'];
|
||||||
|
lockoutEnd = json['lockoutEnd'];
|
||||||
|
lockoutEnabled = json['lockoutEnabled'];
|
||||||
|
accessFailedCount = json['accessFailedCount'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class UserRoles {
|
||||||
|
UserRoles({
|
||||||
|
this.id,
|
||||||
|
this.name,
|
||||||
|
this.value,
|
||||||
|
});
|
||||||
|
|
||||||
|
UserRoles.fromJson(dynamic json) {
|
||||||
|
id = json['id'];
|
||||||
|
name = json['name'];
|
||||||
|
value = json['value'];
|
||||||
|
}
|
||||||
|
String id;
|
||||||
|
String name;
|
||||||
|
String value;
|
||||||
|
UserRoles copyWith({
|
||||||
|
String id,
|
||||||
|
String name,
|
||||||
|
String value,
|
||||||
|
}) =>
|
||||||
|
UserRoles(
|
||||||
|
id: id ?? this.id,
|
||||||
|
name: name ?? this.name,
|
||||||
|
value: value ?? this.value,
|
||||||
|
);
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final map = <String, dynamic>{};
|
||||||
|
map['id'] = id;
|
||||||
|
map['name'] = name;
|
||||||
|
map['value'] = value;
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue