100 lines
2.3 KiB
Dart
100 lines
2.3 KiB
Dart
class UserModel {
|
|
final String id;
|
|
final String uniqueId;
|
|
final String name;
|
|
final String email;
|
|
final String phone;
|
|
final String role;
|
|
final String sbu;
|
|
final String createdAt;
|
|
final String updatedAt;
|
|
final String? fcmToken;
|
|
final Avatar? avatar;
|
|
|
|
UserModel({
|
|
required this.id,
|
|
required this.uniqueId,
|
|
required this.name,
|
|
required this.email,
|
|
required this.phone,
|
|
required this.role,
|
|
required this.sbu,
|
|
required this.createdAt,
|
|
required this.updatedAt,
|
|
this.fcmToken,
|
|
this.avatar,
|
|
});
|
|
|
|
// Factory constructor for converting JSON to UserModel
|
|
factory UserModel.fromJson(Map<String, dynamic> json) {
|
|
return UserModel(
|
|
id: json['_id'],
|
|
uniqueId: json['uniqueId'],
|
|
name: json['name'],
|
|
email: json['email'],
|
|
phone: json['phone'],
|
|
role: json['role'],
|
|
sbu: json['SBU'],
|
|
createdAt: json['createdAt'],
|
|
updatedAt: json['updatedAt'],
|
|
fcmToken: json['fcm_token'],
|
|
avatar: json['avatar'] != null ? Avatar.fromJson(json['avatar']) : null,
|
|
);
|
|
}
|
|
|
|
// Method to convert UserModel to JSON
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'_id': id,
|
|
'uniqueId': uniqueId,
|
|
'name': name,
|
|
'email': email,
|
|
'phone': phone,
|
|
'role': role,
|
|
'SBU': sbu,
|
|
'createdAt': createdAt,
|
|
'updatedAt': updatedAt,
|
|
'fcm_token': fcmToken,
|
|
'avatar': avatar?.toJson(),
|
|
};
|
|
}
|
|
|
|
// Overriding toString to get a readable output for debugging
|
|
@override
|
|
String toString() {
|
|
return 'UserModel{id: $id, uniqueId: $uniqueId, name: $name, email: $email, phone: $phone, role: $role, sbu: $sbu, createdAt: $createdAt, updatedAt: $updatedAt, fcmToken: $fcmToken, avatar: $avatar}';
|
|
}
|
|
}
|
|
|
|
// Avatar model to handle avatar data
|
|
class Avatar {
|
|
final String publicId;
|
|
final String url;
|
|
|
|
Avatar({
|
|
required this.publicId,
|
|
required this.url,
|
|
});
|
|
|
|
// Factory constructor for converting JSON to Avatar
|
|
factory Avatar.fromJson(Map<String, dynamic> json) {
|
|
return Avatar(
|
|
publicId: json['public_id'] ?? '',
|
|
url: json['url'] ?? '',
|
|
);
|
|
}
|
|
|
|
// Method to convert Avatar to JSON
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'public_id': publicId,
|
|
'url': url,
|
|
};
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'Avatar{publicId: $publicId, url: $url}';
|
|
}
|
|
}
|