app-starlock/lib/login/login/entity/LoginData.dart

92 lines
2.5 KiB
Dart
Executable File

import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart';
class LoginData {
LoginData(
{this.accessToken,
this.userid,
this.expiresAt,
this.expiresAtString,
this.mobile,
this.headUrl,
this.email,
this.nickname,
this.haveSafeAnswer,
this.uid,
this.isVip,
this.starchart});
LoginData.fromJson(dynamic json) {
accessToken = json['accessToken'] as String?;
userid = _parseInt(json['userid']);
expiresAt = _parseInt(json['expiresAt']);
expiresAtString = json['expiresAtString'] as String?;
mobile = json['mobile'] as String?;
headUrl = json['headUrl'] as String?;
email = json['email'] as String?;
nickname = json['nickname'] as String?;
haveSafeAnswer = json['haveSafeAnswer'] as bool?;
uid = _parseInt(json['uid']);
isVip = _parseInt(json['isVip']);
starchart = json['starchart'] != null
? Starchart.fromJson(json['starchart'])
: null;
}
// 安全的整数解析方法
int? _parseInt(dynamic value) {
if (value == null) return null;
if (value is int) return value;
if (value is String) {
try {
return int.parse(value);
} catch (e) {
return null;
}
}
return null;
}
String? accessToken;
int? userid;
int? expiresAt;
String? expiresAtString;
String? mobile;
String? headUrl;
String? email;
String? nickname;
bool? haveSafeAnswer;
int? uid;
int? isVip;
Starchart? starchart;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['accessToken'] = accessToken;
map['userid'] = userid;
map['expiresAt'] = expiresAt;
map['expiresAtString'] = expiresAtString;
map['mobile'] = mobile;
map['headUrl'] = headUrl;
map['email'] = email;
map['nickname'] = nickname;
map['haveSafeAnswer'] = haveSafeAnswer;
map['uid'] = uid;
map['isVip'] = isVip;
if (starchart != null) {
map['starchart'] = starchart!.toJson();
}
return map;
}
void updateStarchart(
StarChartRegisterNodeEntity starChartRegisterNodeEntity) {
starchart = Starchart(
scdUrl: this.starchart?.scdUrl,
starchartId: starChartRegisterNodeEntity.peer?.id,
starchartPeerPublicKey: starChartRegisterNodeEntity.peer?.publicKey,
starchartPeerPrivateKey: starChartRegisterNodeEntity.peer?.privateKey,
);
}
}