user.dart 791 B

123456789101112131415161718192021222324252627282930313233
  1. import 'package:e2ee_chat/objectbox.g.dart';
  2. import 'package:e2ee_chat/presenter/contact.dart';
  3. import 'package:objectbox/objectbox.dart';
  4. import 'package:e2ee_chat/common/api.dart';
  5. import 'message.dart';
  6. @Entity()
  7. class User {
  8. User(this.username, {this.bio, this.phone});
  9. int id = 0;
  10. @Unique()
  11. final String username;
  12. final friends = ToMany<User>();
  13. final messages = ToMany<Message>();
  14. final groupMessages = ToMany<GroupMessage>();
  15. String? bio;
  16. String? phone;
  17. bool isDND = false;
  18. bool isStick = false;
  19. bool isSpecialAttention = false;
  20. static put(User user) async {
  21. final store = await openStore();
  22. final box = store.box<User>();
  23. box.put(user);
  24. store.close();
  25. }
  26. refreshProfile() => UserProfilePresenter(this).refresh();
  27. // TODO: avatar
  28. }