user.dart 843 B

12345678910111213141516171819202122232425262728293031
  1. import 'package:dash_chat/dash_chat.dart';
  2. import 'package:json_annotation/json_annotation.dart';
  3. import 'package:e2ee_chat/presenter/contact.dart';
  4. import 'message.dart';
  5. part 'user.g.dart';
  6. @JsonSerializable()
  7. class User {
  8. User(this.username, {this.bio, this.phone, this.avatar});
  9. factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
  10. Map<String, dynamic> toJson() => _$UserToJson(this);
  11. final String username;
  12. final friends = <User>[];
  13. final messages = <Message>[];
  14. // final groupMessages = <GroupMessage>[];
  15. String? bio;
  16. String? phone;
  17. String? avatar;
  18. bool isDND = false;
  19. bool isStick = false;
  20. bool isSpecialAttention = false;
  21. ChatUser toChatUser() => ChatUser(uid: username, name: username, avatar: avatar);
  22. Future<bool> refreshProfile() => UserProfilePresenter(this).refresh();
  23. }