together_mobile/lib/models/user_model.dart

127 lines
2.6 KiB
Dart
Raw Normal View History

import 'package:flutter/material.dart';
2024-04-09 17:23:28 +08:00
import '/utils/app_dir.dart';
class UserAccount extends ChangeNotifier {
String id = '';
String username = '';
String email = '';
2023-07-27 18:17:52 +08:00
void init(Map<String, dynamic> data) {
id = data['id']!;
username = data['username']!;
email = data['email']!;
}
2023-08-11 23:02:31 +08:00
Map<String, String> toMap() {
return {
'id': id,
'username': username,
'email': email,
};
}
void updateUsername(String newUsername) {
username = newUsername;
}
void updateEmail(String newEmail) {
email = newEmail;
}
2023-07-27 18:17:52 +08:00
2023-09-09 16:48:47 +08:00
void clear() {
2023-07-27 18:17:52 +08:00
id = '';
username = '';
email = '';
}
}
class UserProfile extends ChangeNotifier {
String nickname = '';
String gender = '';
String birthday = '';
String location = '';
String status = '';
String sign = '';
String avatar = '';
String baseImageDir = '';
bool isInitialised = false;
2023-07-27 18:17:52 +08:00
Future<void> init(Map<String, dynamic> json) async {
nickname = json['nickname'] ?? '';
birthday = json['birthday'] ?? '';
location = json['location'] ?? '';
status = json['status'] ?? '';
sign = json['sign'] ?? '';
avatar = json['avatar'] ?? '';
baseImageDir = await getChatImageDir();
2023-07-27 18:17:52 +08:00
gender = _genderEn2Cn(json['gender'] ?? '');
isInitialised = true;
}
2023-08-11 23:02:31 +08:00
Map<String, String> toMap() {
return {
'nickname': nickname,
'gender': gender,
'birthday': birthday,
'location': location,
'status': status,
'sign': sign,
'avatar': avatar,
};
}
Map<String, String> toMapCn() {
return {
'签名': sign,
'状态': status,
'名字': nickname,
'生日': birthday.isNotEmpty
? '${birthday.substring(0, 4)}${birthday.substring(5, 7)}${birthday.substring(8)}'
: '',
'位置': location,
'性别': gender,
};
}
void changeBasic(
String newSign,
String newStatus,
String newNickname,
String newBirthday,
String newLocation,
String newGender,
) {
sign = newSign;
2023-10-06 16:43:51 +08:00
status = newStatus;
nickname = newNickname;
birthday = newBirthday;
location = newLocation;
gender = newGender;
2023-10-06 16:43:51 +08:00
}
void changeAvatar(String newAvatar) async {
avatar = newAvatar;
}
2023-09-09 16:48:47 +08:00
void clear() {
2023-07-27 18:17:52 +08:00
nickname = '';
gender = '';
birthday = '';
location = '';
status = '';
sign = '';
avatar = '';
baseImageDir = '';
2023-07-27 18:17:52 +08:00
isInitialised = false;
}
String _genderEn2Cn(String newGender) {
if (newGender.isEmpty) {
return newGender;
} else {
return newGender == 'man' ? '' : '';
}
}
}