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

232 lines
6.3 KiB
Dart

3 years ago
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
import 'package:test_sa/models/enums/user_types.dart';
3 years ago
class User {
int clientId;
String clientName;
List<int> departmentId;
List<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;
3 years ago
String id;
String userName;
String normalizedUserName;
String normalizedEmail;
bool emailConfirmed;
dynamic passwordHash;
String securityStamp;
String concurrencyStamp;
3 years ago
String phoneNumber;
bool phoneNumberConfirmed;
bool twoFactorEnabled;
dynamic lockoutEnd;
bool lockoutEnabled;
int accessFailedCount;
3 years ago
User({
this.clientId,
this.clientName,
this.departmentId,
this.departmentName,
this.message,
this.username,
this.userID,
this.email,
this.password,
this.token,
this.roles,
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,
});
3 years ago
bool get isLiveToken => tokenlife != null && (DateTime.tryParse(tokenlife)?.isAfter(DateTime.now()) ?? false);
3 years ago
Future<Map<String, dynamic>> toLoginJson() async {
3 years ago
if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
3 years ago
return {
3 years ago
"username": userName,
"password": password,
"fireBaseToken": FirebaseNotificationManger?.token ?? "",
3 years ago
};
}
UsersTypes get type {
2 years ago
switch (userRoles?.first?.value) {
case "R-6":
return UsersTypes.engineer;
2 years ago
case "R-7":
return UsersTypes.normal_user;
default:
return null;
}
}
3 years ago
Map<String, dynamic> toUpdateProfileJson() {
Map<String, dynamic> jsonObject = {};
// if (departmentId != null) jsonObject["department"] = departmentId;
// if (whatsApp != null && whatsApp.isNotEmpty) jsonObject["whatsapp"] = whatsApp;
// if (phoneNumber != null && phoneNumber.isNotEmpty) jsonObject["phone"] = phoneNumber;
3 years ago
return jsonObject;
}
Future<Map<String, dynamic>> toRegisterJson() async {
// if (FirebaseNotificationManger.token == null) await FirebaseNotificationManger.getToken();
3 years ago
return {
// "username": userName,
// "email": email,
// "whatsapp": whatsApp,
// "client": hospital.id,
// "department": department?.id,
// "phone": phoneNumber,
// "pass": password,
// "firebase_token": FirebaseNotificationManger?.token ?? "",
3 years ago
};
}
3 years ago
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['client_id'] = clientId;
map['client_name'] = clientName;
map['department_id'] = departmentId;
map['department_name'] = departmentName;
map['message'] = message;
map['username'] = username;
map['userID'] = userID;
map['email'] = email;
map['password'] = password;
map['token'] = token;
map['roles'] = roles;
if (userRoles != null) {
map['userRoles'] = userRoles.map((v) => v.toJson()).toList();
}
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;
3 years ago
}
User.fromJson(dynamic json) {
clientId = json['client_id'];
clientName = json['client_name'];
if (json['department_id'] != null) {
departmentId = [];
json['department_id'].forEach((v) {
departmentId.add(v);
});
}
if (json['department_name'] != null) {
departmentId = [];
json['department_name'].forEach((v) {
departmentId.add(v);
});
}
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));
});
3 years ago
}
tokenlife = json['tokenlife'];
isAuthenticated = json['isAuthenticated'];
hasError = json['hasError'];
profilePhotoName = json['profilePhotoName'];
id = json['id'];
userName = json['userName'];
normalizedUserName = json['normalizedUserName'];
normalizedEmail = json['normalizedEmail'];
emailConfirmed = json['emailConfirmed'];
passwordHash = json['passwordHash'];
securityStamp = json['securityStamp'];
concurrencyStamp = json['concurrencyStamp'];
phoneNumber = json['phoneNumber'];
phoneNumberConfirmed = json['phoneNumberConfirmed'];
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;
3 years ago
}
3 years ago
}