together_mobile/lib/models/user_model.dart

109 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:together_mobile/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 clean() {
id = '';
username = '';
email = '';
}
}
class UserProfile extends ChangeNotifier {
String nickname = '';
String gender = '';
String birthday = '';
String location = '';
String status = '';
String sign = '';
String avatar = '';
String baseAvatarPath = '';
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'] ?? '';
baseAvatarPath = await getAvatarDir();
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,
};
}
void updateBasic(Map<String, String> newBasic) {
nickname = newBasic['nickname']!;
location = newBasic['location']!;
birthday = newBasic['birthday']!;
gender = newBasic['gender']!;
}
void updateSign(String newSign) {
sign = newSign;
}
void updateAvatar(String newAvatar) async {
avatar = newAvatar;
}
void clean() {
nickname = '';
gender = '';
birthday = '';
location = '';
status = '';
sign = '';
avatar = '';
baseAvatarPath = '';
isInitialised = false;
}
String _genderEn2Cn(String newGender) {
if (newGender.isEmpty) {
return newGender;
} else {
return newGender == 'man' ? '' : '';
}
}
}