65 lines
1.6 KiB
Dart
65 lines
1.6 KiB
Dart
import 'package:maibu_satabot_v2/core/data/base_model.dart';
|
|
import 'package:maibu_satabot_v2/core/utils/json_safe.dart';
|
|
|
|
import '../../../../core/domain/entities/user_entity.dart';
|
|
|
|
class UserModel extends UserEntity implements BaseModel {
|
|
UserModel({
|
|
required super.userId,
|
|
required super.username,
|
|
required super.nickname,
|
|
required super.token,
|
|
super.avatar,
|
|
super.email,
|
|
super.phone,
|
|
});
|
|
|
|
factory UserModel.fromJson(Map<String, dynamic> json) {
|
|
return UserModel(
|
|
userId: JsonSafe.asString(json['userId']),
|
|
username: JsonSafe.asString(json['username']),
|
|
nickname: JsonSafe.asString(json['nickName']),
|
|
token: JsonSafe.asString(json['token']),
|
|
avatar: JsonSafe.asStringOrNull(json['avatar']),
|
|
email: JsonSafe.asStringOrNull(json['email']),
|
|
phone: JsonSafe.asStringOrNull(json['phone']),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'userId': userId,
|
|
'username': username,
|
|
'nickName': nickname,
|
|
'token': token,
|
|
'avatar': avatar,
|
|
'email': email,
|
|
'phone': phone,
|
|
};
|
|
}
|
|
|
|
toEntity() {
|
|
return UserEntity(
|
|
userId: userId,
|
|
username: username,
|
|
nickname: nickname,
|
|
token: token,
|
|
avatar: avatar,
|
|
email: email,
|
|
phone: phone,
|
|
);
|
|
}
|
|
|
|
factory UserModel.fromEntity(UserEntity entity) {
|
|
return UserModel(
|
|
userId: entity.userId,
|
|
username: entity.username,
|
|
nickname: entity.nickname,
|
|
token: entity.token,
|
|
avatar: entity.avatar,
|
|
email: entity.email,
|
|
phone: entity.phone,
|
|
);
|
|
}
|
|
}
|