Files
MagnumOpus/Packages/MagnumOpusCore/Sources/Models/TaskSummary.swift
Felix Förtsch a4f0761f25 add v0.4 models, schema, query extensions for GTD tasks, labels, deferrals
New model types: TaskStatus, TaskSummary, LabelInfo, ItemSummary.
GRDB records: TaskRecord, LabelRecord, ItemLabelRecord, DeferralRecord.
Database migrations v3_task, v3_label, v3_deferral with indexes.
MailStore query extensions for labels, item-labels, deferrals, task cache.
TaskStore module wrapping MailStore. Tests for all v3 tables and records.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 10:31:00 +01:00

37 lines
1.1 KiB
Swift

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
}
}