import Foundation

public struct TaskSummary: Sendable, Identifiable, Equatable {
	public var id: String
	public var accountId: String
	public var summary: String
	public var description: String?
	public var status: TaskStatus
	public var priority: Int
	public var dueDate: Date?
	public var deferUntil: Date?
	public var createdAt: Date
	public var linkedMessageId: String?
	public var categories: [String]
	public var isSomeday: Bool

	public init(
		id: String, accountId: String, summary: String, description: String? = nil,
		status: TaskStatus = .needsAction, priority: Int = 0, dueDate: Date? = nil,
		deferUntil: Date? = nil, createdAt: Date = Date(), linkedMessageId: String? = nil,
		categories: [String] = [], isSomeday: Bool = false
	) {
		self.id = id
		self.accountId = accountId
		self.summary = summary
		self.description = description
		self.status = status
		self.priority = priority
		self.dueDate = dueDate
		self.deferUntil = deferUntil
		self.createdAt = createdAt
		self.linkedMessageId = linkedMessageId
		self.categories = categories
		self.isSomeday = isSomeday
	}
}
