2026-03-27 19:07:39 +08:00
|
|
|
class UserProfile {
|
2026-02-26 14:28:58 +08:00
|
|
|
final String id;
|
|
|
|
|
final String username;
|
2026-03-19 18:42:05 +08:00
|
|
|
final String? phone;
|
2026-02-26 14:28:58 +08:00
|
|
|
final String? avatarUrl;
|
|
|
|
|
final String? bio;
|
|
|
|
|
|
2026-03-27 19:07:39 +08:00
|
|
|
const UserProfile({
|
2026-02-26 14:28:58 +08:00
|
|
|
required this.id,
|
|
|
|
|
required this.username,
|
2026-03-19 18:42:05 +08:00
|
|
|
this.phone,
|
2026-02-26 14:28:58 +08:00
|
|
|
this.avatarUrl,
|
|
|
|
|
this.bio,
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-27 19:07:39 +08:00
|
|
|
factory UserProfile.fromJson(Map<String, dynamic> json) {
|
|
|
|
|
return UserProfile(
|
2026-02-26 14:28:58 +08:00
|
|
|
id: json['id'] as String,
|
|
|
|
|
username: json['username'] as String,
|
2026-03-19 18:42:05 +08:00
|
|
|
phone: json['phone'] as String?,
|
2026-02-26 14:28:58 +08:00
|
|
|
avatarUrl: json['avatar_url'] as String?,
|
|
|
|
|
bio: json['bio'] as String?,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class UserUpdateRequest {
|
|
|
|
|
final String? username;
|
|
|
|
|
final String? avatarUrl;
|
|
|
|
|
final String? bio;
|
|
|
|
|
|
|
|
|
|
const UserUpdateRequest({this.username, this.avatarUrl, this.bio});
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
|
return {
|
|
|
|
|
if (username != null) 'username': username,
|
|
|
|
|
if (avatarUrl != null) 'avatar_url': avatarUrl,
|
|
|
|
|
if (bio != null) 'bio': bio,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|