Files
monisuo/flutter_monisuo/lib/data/models/user.dart
2026-04-04 21:19:29 +08:00

85 lines
2.1 KiB
Dart

/// 用户模型
class User {
final int id;
final String username;
final String? nickname;
final String? avatar;
final String? phone;
final String? email;
final int kycStatus;
final String? referralCode;
final int status;
final DateTime? lastLoginTime;
final DateTime? createTime;
User({
required this.id,
required this.username,
this.nickname,
this.avatar,
this.phone,
this.email,
required this.kycStatus,
this.referralCode,
required this.status,
this.lastLoginTime,
this.createTime,
});
factory User.fromJson(Map<String, dynamic> json) {
return User(
id: json['id'] as int? ?? 0,
username: json['username'] as String? ?? '',
nickname: json['nickname'] as String?,
avatar: json['avatar'] as String?,
phone: json['phone'] as String?,
email: json['email'] as String?,
kycStatus: json['kycStatus'] as int? ?? 0,
referralCode: json['referralCode'] as String?,
status: json['status'] as int? ?? 1,
lastLoginTime: json['lastLoginTime'] != null
? DateTime.tryParse(json['lastLoginTime'])
: null,
createTime: json['createTime'] != null
? DateTime.tryParse(json['createTime'])
: null,
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'username': username,
'nickname': nickname,
'avatar': avatar,
'phone': phone,
'email': email,
'kycStatus': kycStatus,
'referralCode': referralCode,
'status': status,
'lastLoginTime': lastLoginTime?.toIso8601String(),
'createTime': createTime?.toIso8601String(),
};
}
/// 获取头像显示文字(用户名首字母)
String get avatarText =>
username.isNotEmpty ? username.substring(0, 1).toUpperCase() : 'U';
/// KYC 状态文字
String get kycStatusText {
switch (kycStatus) {
case 0:
return '未认证';
case 1:
return '审核中';
case 2:
return '已认证';
case 3:
return '认证失败';
default:
return '未知';
}
}
}