import 'dart:convert'; import 'package:equatable/equatable.dart'; import 'package:jmap_dart_client/jmap/identities/identity.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:model/email/attachment.dart'; part 'saved_email_draft.g.dart'; @JsonSerializable(includeIfNull: false, explicitToJson: true) class SavedEmailDraft with EquatableMixin { final String content; final String subject; final Set toRecipients; final Set ccRecipients; final Set bccRecipients; final Set replyToRecipients; final List attachments; final Identity? identity; final bool hasReadReceipt; final bool isMarkAsImportant; SavedEmailDraft({ required this.content, required this.subject, required this.toRecipients, required this.ccRecipients, required this.bccRecipients, required this.replyToRecipients, required this.attachments, required this.identity, required this.hasReadReceipt, this.isMarkAsImportant = false, }); factory SavedEmailDraft.fromJson(Map json) => _$SavedEmailDraftFromJson(json); Map toJson() => _$SavedEmailDraftToJson(this); String asString() => jsonEncode(toJson()); @override List get props => [ content, subject, toRecipients, ccRecipients, bccRecipients, replyToRecipients, attachments, identity, hasReadReceipt, isMarkAsImportant, ]; }