together_mobile/lib/models/user_model.dart

127 lines
2.6 KiB
Dart

import 'package:flutter/material.dart';
import '/utils/app_dir.dart';
class UserAccount extends ChangeNotifier {
String id = '';
String username = '';
String email = '';
void init(Map<String, dynamic> data) {
id = data['id']!;
username = data['username']!;
email = data['email']!;
}
Map<String, String> toMap() {
return {
'id': id,
'username': username,
'email': email,
};
}
void updateUsername(String newUsername) {
username = newUsername;
}
void updateEmail(String newEmail) {
email = newEmail;
}
void clear() {
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;
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();
gender = _genderEn2Cn(json['gender'] ?? '');
isInitialised = true;
}
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;
status = newStatus;
nickname = newNickname;
birthday = newBirthday;
location = newLocation;
gender = newGender;
}
void changeAvatar(String newAvatar) async {
avatar = newAvatar;
}
void clear() {
nickname = '';
gender = '';
birthday = '';
location = '';
status = '';
sign = '';
avatar = '';
baseImageDir = '';
isInitialised = false;
}
String _genderEn2Cn(String newGender) {
if (newGender.isEmpty) {
return newGender;
} else {
return newGender == 'man' ? '' : '';
}
}
}