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 data) { id = data['id']!; username = data['username']!; email = data['email']!; } Map 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 init(Map 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 toMap() { return { 'nickname': nickname, 'gender': gender, 'birthday': birthday, 'location': location, 'status': status, 'sign': sign, 'avatar': avatar, }; } void updateBasic(Map newBasic) { nickname = newBasic['nickname']!; location = newBasic['location']!; birthday = newBasic['birthday']!; gender = newBasic['gender']!; } void updateSign(String newSign) { sign = newSign; } void updateStatus(String newStatus) { status = newStatus; } void updateAvatar(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' ? '男' : '女'; } } }