52 lines
1.1 KiB
Dart
52 lines
1.1 KiB
Dart
class User {
|
|
final int id;
|
|
final String email;
|
|
final String? username;
|
|
final String? firstName;
|
|
final String? lastName;
|
|
final String? displayName;
|
|
final String? avatarUrl;
|
|
|
|
User({
|
|
required this.id,
|
|
required this.email,
|
|
this.username,
|
|
this.firstName,
|
|
this.lastName,
|
|
this.displayName,
|
|
this.avatarUrl,
|
|
});
|
|
|
|
factory User.fromJson(Map<String, dynamic> json) {
|
|
return User(
|
|
id: json['id'] ?? 0,
|
|
email: json['email'] ?? '',
|
|
username: json['username'],
|
|
firstName: json['first_name'],
|
|
lastName: json['last_name'],
|
|
displayName: json['display_name'] ?? json['name'],
|
|
avatarUrl: json['avatar_url'],
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'email': email,
|
|
'username': username,
|
|
'first_name': firstName,
|
|
'last_name': lastName,
|
|
'display_name': displayName,
|
|
'avatar_url': avatarUrl,
|
|
};
|
|
}
|
|
|
|
String get fullName {
|
|
if (firstName != null && lastName != null) {
|
|
return '$firstName $lastName';
|
|
}
|
|
return displayName ?? email;
|
|
}
|
|
}
|
|
|