Files
flutterApp/lib/features/auth/data/models/user_model.dart
2026-09-15 08:51:44 +08:00

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,
);
}
}