diff --git a/Sources/RemindCore/EventKitStore.swift b/Sources/RemindCore/EventKitStore.swift index e44dc89..9615b8a 100644 --- a/Sources/RemindCore/EventKitStore.swift +++ b/Sources/RemindCore/EventKitStore.swift @@ -112,6 +112,7 @@ public actor RemindersStore { completionDate: reminder.completionDate, priority: ReminderPriority(eventKitValue: Int(reminder.priority)), dueDate: date(from: reminder.dueDateComponents), + isFlagged: reminder.isFlagged, listID: reminder.calendar.calendarIdentifier, listName: reminder.calendar.title ) @@ -153,6 +154,7 @@ public actor RemindersStore { completionDate: reminder.completionDate, priority: ReminderPriority(eventKitValue: Int(reminder.priority)), dueDate: date(from: reminder.dueDateComponents), + isFlagged: reminder.isFlagged, listID: reminder.calendar.calendarIdentifier, listName: reminder.calendar.title ) @@ -173,6 +175,7 @@ public actor RemindersStore { completionDate: reminder.completionDate, priority: ReminderPriority(eventKitValue: Int(reminder.priority)), dueDate: date(from: reminder.dueDateComponents), + isFlagged: reminder.isFlagged, listID: reminder.calendar.calendarIdentifier, listName: reminder.calendar.title ) @@ -212,6 +215,7 @@ public actor RemindersStore { let completionDate: Date? let priority: Int let dueDateComponents: DateComponents? + let isFlagged: Bool let listID: String let listName: String } @@ -228,6 +232,7 @@ public actor RemindersStore { completionDate: reminder.completionDate, priority: Int(reminder.priority), dueDateComponents: reminder.dueDateComponents, + isFlagged: reminder.isFlagged, listID: reminder.calendar.calendarIdentifier, listName: reminder.calendar.title ) @@ -245,6 +250,7 @@ public actor RemindersStore { completionDate: data.completionDate, priority: ReminderPriority(eventKitValue: data.priority), dueDate: date(from: data.dueDateComponents), + isFlagged: data.isFlagged, listID: data.listID, listName: data.listName ) @@ -284,6 +290,7 @@ public actor RemindersStore { completionDate: reminder.completionDate, priority: ReminderPriority(eventKitValue: Int(reminder.priority)), dueDate: date(from: reminder.dueDateComponents), + isFlagged: reminder.isFlagged, listID: reminder.calendar.calendarIdentifier, listName: reminder.calendar.title ) diff --git a/Sources/RemindCore/Models.swift b/Sources/RemindCore/Models.swift index 5f4fe90..974c945 100644 --- a/Sources/RemindCore/Models.swift +++ b/Sources/RemindCore/Models.swift @@ -51,6 +51,7 @@ public struct ReminderItem: Identifiable, Codable, Sendable, Equatable { public let completionDate: Date? public let priority: ReminderPriority public let dueDate: Date? + public let isFlagged: Bool public let listID: String public let listName: String @@ -62,6 +63,7 @@ public struct ReminderItem: Identifiable, Codable, Sendable, Equatable { completionDate: Date?, priority: ReminderPriority, dueDate: Date?, + isFlagged: Bool, listID: String, listName: String ) { @@ -72,6 +74,7 @@ public struct ReminderItem: Identifiable, Codable, Sendable, Equatable { self.completionDate = completionDate self.priority = priority self.dueDate = dueDate + self.isFlagged = isFlagged self.listID = listID self.listName = listName } diff --git a/Sources/remindctl/OutputFormatting.swift b/Sources/remindctl/OutputFormatting.swift index ee85c61..4fc1ea2 100644 --- a/Sources/remindctl/OutputFormatting.swift +++ b/Sources/remindctl/OutputFormatting.swift @@ -98,7 +98,8 @@ enum OutputRenderer { let status = reminder.isCompleted ? "x" : " " let due = reminder.dueDate.map { DateParsing.formatDisplay($0) } ?? "no due date" let priority = reminder.priority == .none ? "" : " priority=\(reminder.priority.rawValue)" - Swift.print("[\(index + 1)] [\(status)] \(reminder.title) [\(reminder.listName)] — \(due)\(priority)") + let flag = reminder.isFlagged ? " ⚑" : "" + Swift.print("[\(index + 1)] [\(status)] \(reminder.title) [\(reminder.listName)] — \(due)\(priority)\(flag)") } } @@ -116,6 +117,7 @@ enum OutputRenderer { reminder.listName, reminder.isCompleted ? "1" : "0", reminder.priority.rawValue, + reminder.isFlagged ? "1" : "0", due, reminder.title, ].joined(separator: "\t") diff --git a/Tests/RemindCoreTests/IDResolverTests.swift b/Tests/RemindCoreTests/IDResolverTests.swift index bcb3910..3755e60 100644 --- a/Tests/RemindCoreTests/IDResolverTests.swift +++ b/Tests/RemindCoreTests/IDResolverTests.swift @@ -15,6 +15,7 @@ struct IDResolverTests { completionDate: nil, priority: .none, dueDate: Date(timeIntervalSince1970: 1_700_000_000), + isFlagged: false, listID: "list1", listName: "Work" ), @@ -26,6 +27,7 @@ struct IDResolverTests { completionDate: nil, priority: .none, dueDate: Date(timeIntervalSince1970: 1_700_000_100), + isFlagged: false, listID: "list1", listName: "Work" ), diff --git a/Tests/RemindCoreTests/ReminderFilteringTests.swift b/Tests/RemindCoreTests/ReminderFilteringTests.swift index 35d45f2..fbfa6e1 100644 --- a/Tests/RemindCoreTests/ReminderFilteringTests.swift +++ b/Tests/RemindCoreTests/ReminderFilteringTests.swift @@ -24,6 +24,7 @@ struct ReminderFilteringTests { completionDate: nil, priority: .none, dueDate: yesterday, + isFlagged: false, listID: "a", listName: "Home" ), @@ -35,6 +36,7 @@ struct ReminderFilteringTests { completionDate: nil, priority: .none, dueDate: today, + isFlagged: false, listID: "a", listName: "Home" ), @@ -46,6 +48,7 @@ struct ReminderFilteringTests { completionDate: nil, priority: .none, dueDate: tomorrow, + isFlagged: false, listID: "a", listName: "Home" ), @@ -57,6 +60,7 @@ struct ReminderFilteringTests { completionDate: nil, priority: .none, dueDate: nil, + isFlagged: false, listID: "a", listName: "Home" ), @@ -68,6 +72,7 @@ struct ReminderFilteringTests { completionDate: now, priority: .none, dueDate: today, + isFlagged: false, listID: "a", listName: "Home" ),