pd-android-app/lib/models/user_model.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}';
}
}