76 lines
1.9 KiB
Dart
76 lines
1.9 KiB
Dart
import 'package:sk_base_mobile/models/dept.model.dart';
|
|
import 'package:sk_base_mobile/models/role.model.dart';
|
|
|
|
class UserInfoModel {
|
|
UserInfoModel({
|
|
this.id,
|
|
this.createdAt,
|
|
this.updatedAt,
|
|
this.username,
|
|
this.psalt,
|
|
this.nickname,
|
|
this.avatar,
|
|
this.qq,
|
|
this.email,
|
|
this.phone,
|
|
this.remark,
|
|
this.status,
|
|
this.dept,
|
|
this.roles = const [],
|
|
});
|
|
|
|
final int? id;
|
|
final DateTime? createdAt;
|
|
final DateTime? updatedAt;
|
|
final String? username;
|
|
final String? psalt;
|
|
final String? nickname;
|
|
final String? avatar;
|
|
final String? qq;
|
|
final String? email;
|
|
final String? phone;
|
|
final String? remark;
|
|
final int? status;
|
|
final DeptModel? dept;
|
|
List<RoleModel> roles;
|
|
|
|
factory UserInfoModel.fromJson(Map<String, dynamic> json) {
|
|
return UserInfoModel(
|
|
id: json["id"],
|
|
createdAt: DateTime.tryParse(json["createdAt"] ?? ""),
|
|
updatedAt: DateTime.tryParse(json["updatedAt"] ?? ""),
|
|
username: json["username"],
|
|
psalt: json["psalt"],
|
|
nickname: json["nickname"],
|
|
avatar: json["avatar"],
|
|
qq: json["qq"],
|
|
email: json["email"],
|
|
phone: json["phone"],
|
|
remark: json["remark"],
|
|
status: json["status"],
|
|
dept: json["dept"] == null ? null : DeptModel.fromJson(json["dept"]),
|
|
roles: json["roles"] == null
|
|
? []
|
|
: List<RoleModel>.from(
|
|
json["roles"]!.map((x) => RoleModel.fromJson(x))),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"id": id,
|
|
"createdAt": createdAt?.toIso8601String(),
|
|
"updatedAt": updatedAt?.toIso8601String(),
|
|
"username": username,
|
|
"psalt": psalt,
|
|
"nickname": nickname,
|
|
"avatar": avatar,
|
|
"qq": qq,
|
|
"email": email,
|
|
"phone": phone,
|
|
"remark": remark,
|
|
"status": status,
|
|
"dept": dept?.toJson(),
|
|
"roles": roles.map((x) => x.toJson()).toList(),
|
|
};
|
|
}
|