dev
dart 52 lines 1.18 KB
Raw
1 import 'package:cw_core/crypto_currency.dart';
2 import 'package:cw_core/hive_type_ids.dart';
3 import 'package:cw_core/keyable.dart';
4 import 'package:hive/hive.dart';
5
6 part 'contact.part.dart';
7
8 // @HiveType(typeId: Contact.typeId)
9 class Contact extends HiveObject with Keyable {
10 Contact(
11 {required this.name,
12 required this.address,
13 CryptoCurrency? type,
14 DateTime? lastChange,
15 this.displayName = ""})
16 : lastChange = lastChange ?? DateTime.now() {
17 if (type != null) {
18 raw = type.raw;
19 }
20 }
21
22 static const typeId = CONTACT_TYPE_ID;
23 static const boxName = 'Contacts';
24
25 // @HiveField(0, defaultValue: '')
26 String name;
27
28 // @HiveField(1, defaultValue: '')
29 String address;
30
31 // @HiveField(2, defaultValue: 0)
32 late int raw;
33
34 // @HiveField(3)
35 DateTime lastChange;
36
37 // @HiveField(4, defaultValue: "")
38 String displayName;
39
40 CryptoCurrency get type => CryptoCurrency.deserialize(raw: raw);
41
42 @override
43 dynamic get keyIndex => key;
44
45 @override
46 bool operator ==(Object o) => o is Contact && o.key == key;
47
48 @override
49 int get hashCode => key.hashCode;
50
51 void updateCryptoCurrency({required CryptoCurrency currency}) => raw = currency.raw;
52 }