import Foundation

public struct MessageSummary: Sendable, Identifiable, Equatable {
	public var id: String
	public var messageId: String?
	public var threadId: String?
	public var from: EmailAddress?
	public var to: [EmailAddress]
	public var cc: [EmailAddress]
	public var subject: String?
	public var date: Date
	public var snippet: String?
	public var bodyText: String?
	public var bodyHtml: String?
	public var isRead: Bool
	public var isFlagged: Bool
	public var hasAttachments: Bool

	public init(
		id: String, messageId: String?, threadId: String?,
		from: EmailAddress?, to: [EmailAddress], cc: [EmailAddress],
		subject: String?, date: Date, snippet: String?,
		bodyText: String?, bodyHtml: String?,
		isRead: Bool, isFlagged: Bool, hasAttachments: Bool
	) {
		self.id = id
		self.messageId = messageId
		self.threadId = threadId
		self.from = from
		self.to = to
		self.cc = cc
		self.subject = subject
		self.date = date
		self.snippet = snippet
		self.bodyText = bodyText
		self.bodyHtml = bodyHtml
		self.isRead = isRead
		self.isFlagged = isFlagged
		self.hasAttachments = hasAttachments
	}
}
