TF-123 Create objects for caching mailbox
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
|
||||
class CachingConstants {
|
||||
static const int MAILBOX_CACHE_IDENTIFY = 1;
|
||||
static const int MAILBOX_RIGHTS_CACHE_IDENTIFY = 2;
|
||||
static const int STATE_DAO_IDENTIFY = 3;
|
||||
static const int STATE_TYPE_IDENTIFY = 4;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:model/caching/mailbox/mailbox_rights_cache.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
part 'mailbox_cache.g.dart';
|
||||
|
||||
@HiveType(typeId: CachingConstants.MAILBOX_CACHE_IDENTIFY)
|
||||
class MailboxCache extends HiveObject with EquatableMixin {
|
||||
|
||||
@HiveField(0)
|
||||
final String id;
|
||||
|
||||
@HiveField(1)
|
||||
final String? name;
|
||||
|
||||
@HiveField(2)
|
||||
final String? parentId;
|
||||
|
||||
@HiveField(3)
|
||||
final String? role;
|
||||
|
||||
@HiveField(4)
|
||||
final int? sortOrder;
|
||||
|
||||
@HiveField(5)
|
||||
final int? totalEmails;
|
||||
|
||||
@HiveField(6)
|
||||
final int? unreadEmails;
|
||||
|
||||
@HiveField(7)
|
||||
final int? totalThreads;
|
||||
|
||||
@HiveField(8)
|
||||
final int? unreadThreads;
|
||||
|
||||
@HiveField(9)
|
||||
final MailboxRightsCache? myRights;
|
||||
|
||||
@HiveField(10)
|
||||
final bool? isSubscribed;
|
||||
|
||||
@HiveField(11)
|
||||
final DateTime? lastOpened;
|
||||
|
||||
MailboxCache(
|
||||
this.id,
|
||||
{
|
||||
this.name,
|
||||
this.parentId,
|
||||
this.role,
|
||||
this.sortOrder,
|
||||
this.totalEmails,
|
||||
this.unreadEmails,
|
||||
this.totalThreads,
|
||||
this.unreadThreads,
|
||||
this.myRights,
|
||||
this.isSubscribed,
|
||||
this.lastOpened
|
||||
}
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
id,
|
||||
name,
|
||||
parentId,
|
||||
role,
|
||||
unreadEmails,
|
||||
lastOpened,
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
part 'mailbox_rights_cache.g.dart';
|
||||
|
||||
@HiveType(typeId: CachingConstants.MAILBOX_RIGHTS_CACHE_IDENTIFY)
|
||||
class MailboxRightsCache extends HiveObject with EquatableMixin {
|
||||
|
||||
@HiveField(0)
|
||||
final bool mayReadItems;
|
||||
|
||||
@HiveField(1)
|
||||
final bool mayAddItems;
|
||||
|
||||
@HiveField(2)
|
||||
final bool mayRemoveItems;
|
||||
|
||||
@HiveField(3)
|
||||
final bool maySetSeen;
|
||||
|
||||
@HiveField(4)
|
||||
final bool maySetKeywords;
|
||||
|
||||
@HiveField(5)
|
||||
final bool mayCreateChild;
|
||||
|
||||
@HiveField(6)
|
||||
final bool mayRename;
|
||||
|
||||
@HiveField(7)
|
||||
final bool mayDelete;
|
||||
|
||||
@HiveField(8)
|
||||
final bool maySubmit;
|
||||
|
||||
MailboxRightsCache(
|
||||
this.mayReadItems,
|
||||
this.mayAddItems,
|
||||
this.mayRemoveItems,
|
||||
this.maySetSeen,
|
||||
this.maySetKeywords,
|
||||
this.mayCreateChild,
|
||||
this.mayRename,
|
||||
this.mayDelete,
|
||||
this.maySubmit
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
mayReadItems,
|
||||
mayAddItems,
|
||||
mayRemoveItems,
|
||||
maySetSeen,
|
||||
maySetKeywords,
|
||||
mayCreateChild,
|
||||
mayRename,
|
||||
mayDelete,
|
||||
maySubmit
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
part 'state_dao.g.dart';
|
||||
|
||||
@HiveType(typeId: CachingConstants.STATE_DAO_IDENTIFY)
|
||||
class StateDao extends HiveObject with EquatableMixin {
|
||||
|
||||
@HiveField(0)
|
||||
final StateType type;
|
||||
|
||||
@HiveField(1)
|
||||
final String state;
|
||||
|
||||
StateDao(this.type, this.state);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [type, state];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
part 'state_type.g.dart';
|
||||
|
||||
@HiveType(typeId: CachingConstants.STATE_TYPE_IDENTIFY)
|
||||
enum StateType {
|
||||
|
||||
@HiveField(0)
|
||||
mailbox
|
||||
}
|
||||
|
||||
extension StateTypeExtension on StateType {
|
||||
String get value {
|
||||
switch(this) {
|
||||
case StateType.mailbox:
|
||||
return 'mailbox';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user