Files
workavia-mail-front/lib/features/email/domain/extensions/detailed_email_extension.dart
T
2025-05-13 23:40:12 -07:00

48 lines
1.9 KiB
Dart

import 'package:model/extensions/email_id_extensions.dart';
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_attachments_extension.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_email_header_extension.dart';
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart';
import 'package:tmail_ui_user/features/thread/data/extensions/map_header_identifier_id_extension.dart';
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
extension DetailedEmailExtension on DetailedEmail {
DetailedEmailHiveCache toHiveCache() {
return DetailedEmailHiveCache(
emailId: emailId.asString,
timeSaved: createdTime,
attachments: attachments?.toHiveCache(),
headers: headers?.toList().toHiveCache(),
keywords: keywords?.toMapString(),
emailContentPath: emailContentPath,
messageId: messageId?.ids.toList(),
references: references?.ids.toList(),
inlineImages: inlineImages?.toHiveCache(),
sMimeStatusHeader: sMimeStatusHeader?.toMapString(),
identityHeader: identityHeader?.toMapString(),
);
}
String get newEmailFolderPath => CachingConstants.newEmailsContentFolderName;
String get openedEmailFolderPath => CachingConstants.openedEmailContentFolderName;
DetailedEmail fromEmailContentPath(String path) {
return DetailedEmail(
emailId: emailId,
createdTime: createdTime,
attachments: attachments,
headers: headers,
keywords: keywords,
htmlEmailContent: htmlEmailContent,
emailContentPath: path,
messageId: messageId,
references: references,
inlineImages: inlineImages,
sMimeStatusHeader: sMimeStatusHeader,
identityHeader: identityHeader,
);
}
}