2021-12-24 14:37:24 +02:00
|
|
|
import 'package:cw_core/crypto_currency.dart';
|
2023-08-15 03:47:25 +03:00
|
|
|
import 'package:cw_core/hive_type_ids.dart';
|
2021-12-24 14:37:24 +02:00
|
|
|
import 'package:cw_core/keyable.dart';
|
2023-08-15 03:47:25 +03:00
|
|
|
import 'package:hive/hive.dart';
|
2020-01-04 21:31:52 +02:00
|
|
|
|
|
|
|
part 'contact.g.dart';
|
|
|
|
|
2021-01-15 19:41:30 +02:00
|
|
|
@HiveType(typeId: Contact.typeId)
|
2020-09-07 18:13:39 +03:00
|
|
|
class Contact extends HiveObject with Keyable {
|
2022-10-12 13:09:57 -04:00
|
|
|
Contact({required this.name, required this.address, CryptoCurrency? type}) {
|
|
|
|
if (type != null) {
|
|
|
|
raw = type.raw;
|
|
|
|
}
|
|
|
|
}
|
2020-01-08 14:26:34 +02:00
|
|
|
|
2023-08-15 03:47:25 +03:00
|
|
|
static const typeId = CONTACT_TYPE_ID;
|
2020-01-04 21:31:52 +02:00
|
|
|
static const boxName = 'Contacts';
|
|
|
|
|
2022-11-04 15:55:21 -04:00
|
|
|
@HiveField(0, defaultValue: '')
|
2020-01-04 21:31:52 +02:00
|
|
|
String name;
|
|
|
|
|
2022-11-04 15:55:21 -04:00
|
|
|
@HiveField(1, defaultValue: '')
|
2020-01-04 21:31:52 +02:00
|
|
|
String address;
|
|
|
|
|
2022-11-04 15:55:21 -04:00
|
|
|
@HiveField(2, defaultValue: 0)
|
2022-10-12 13:09:57 -04:00
|
|
|
late int raw;
|
2020-01-04 21:31:52 +02:00
|
|
|
|
|
|
|
CryptoCurrency get type => CryptoCurrency.deserialize(raw: raw);
|
|
|
|
|
2020-09-07 18:13:39 +03:00
|
|
|
@override
|
|
|
|
dynamic get keyIndex => key;
|
|
|
|
|
2020-07-06 23:09:03 +03:00
|
|
|
@override
|
|
|
|
bool operator ==(Object o) => o is Contact && o.key == key;
|
|
|
|
|
|
|
|
@override
|
|
|
|
int get hashCode => key.hashCode;
|
|
|
|
|
2022-10-12 13:09:57 -04:00
|
|
|
void updateCryptoCurrency({required CryptoCurrency currency}) =>
|
2020-01-04 21:31:52 +02:00
|
|
|
raw = currency.raw;
|
|
|
|
}
|