TF-1812 Add SendingEmailHiveCache to store sending email

(cherry picked from commit 7ff4c951b843f7a844e0dd4f0667b85b7fb0b710)
This commit is contained in:
dab246
2023-05-24 13:05:44 +07:00
committed by Dat Vu
parent 1bbbbe191c
commit 0b6195f02a
6 changed files with 136 additions and 0 deletions
@@ -0,0 +1,22 @@
import 'package:model/extensions/email_id_extensions.dart';
import 'package:model/extensions/identity_id_extension.dart';
import 'package:model/extensions/mailbox_id_extension.dart';
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
import 'package:tmail_ui_user/features/offline_mode/model/sending_email_hive_cache.dart';
extension SendingEmailExtension on SendingEmail {
SendingEmailHiveCache toHiveCache() {
return SendingEmailHiveCache(
sendingId,
email.toJson(),
emailActionType.name,
sentMailboxId?.asString,
emailIdDestroyed?.asString,
emailIdAnsweredOrForwarded?.asString,
identityId?.asString,
mailboxNameRequest?.name,
creationIdRequest?.value
);
}
}
@@ -0,0 +1,43 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/email_action_type.dart';
class SendingEmail with EquatableMixin {
final String sendingId;
final Email email;
final MailboxId? sentMailboxId;
final EmailId? emailIdDestroyed;
final EmailId? emailIdAnsweredOrForwarded;
final IdentityId? identityId;
final EmailActionType emailActionType;
final MailboxName? mailboxNameRequest;
final Id? creationIdRequest;
SendingEmail({
required this.sendingId,
required this.email,
required this.emailActionType,
this.sentMailboxId,
this.emailIdDestroyed,
this.emailIdAnsweredOrForwarded,
this.identityId,
this.mailboxNameRequest,
this.creationIdRequest
});
@override
List<Object?> get props => [
sendingId,
email,
emailActionType,
sentMailboxId,
emailIdDestroyed,
emailIdAnsweredOrForwarded,
identityId,
mailboxNameRequest,
creationIdRequest
];
}