|
@@ -15,14 +15,13 @@ final class Project: Codable, Ordered, Aggregate {
|
|
|
|
|
|
|
|
var uuid: UUID = UUID()
|
|
var uuid: UUID = UUID()
|
|
|
var sortOrder: Int = 0
|
|
var sortOrder: Int = 0
|
|
|
- var timestamp: Date
|
|
|
|
|
var name: String = "New Project"
|
|
var name: String = "New Project"
|
|
|
var category: String = ""
|
|
var category: String = ""
|
|
|
@Relationship(deleteRule: .cascade, inverse: \Task.project)
|
|
@Relationship(deleteRule: .cascade, inverse: \Task.project)
|
|
|
var tasks: [Task] = []
|
|
var tasks: [Task] = []
|
|
|
|
|
|
|
|
- init(timestamp: Date) {
|
|
|
|
|
- self.timestamp = timestamp
|
|
|
|
|
|
|
+ init(sortOrder: Int = 0) {
|
|
|
|
|
+ self.sortOrder = sortOrder
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func move(fromOffsets: IndexSet, toOffset: Int) {
|
|
func move(fromOffsets: IndexSet, toOffset: Int) {
|
|
@@ -51,11 +50,10 @@ final class Project: Codable, Ordered, Aggregate {
|
|
|
return rval
|
|
return rval
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- enum CodingKeys: CodingKey { case timestamp, category, name, tasks }
|
|
|
|
|
|
|
+ enum CodingKeys: CodingKey { case category, name, tasks }
|
|
|
|
|
|
|
|
required init(from decoder: any Decoder) throws {
|
|
required init(from decoder: any Decoder) throws {
|
|
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
|
- timestamp = try container.decode(Date.self, forKey: .timestamp)
|
|
|
|
|
category = try container.decode(String.self, forKey: .category)
|
|
category = try container.decode(String.self, forKey: .category)
|
|
|
name = try container.decode(String.self, forKey: .name)
|
|
name = try container.decode(String.self, forKey: .name)
|
|
|
tasks = try container.decode([Task].self, forKey: .tasks)
|
|
tasks = try container.decode([Task].self, forKey: .tasks)
|
|
@@ -64,7 +62,6 @@ final class Project: Codable, Ordered, Aggregate {
|
|
|
|
|
|
|
|
func encode(to encoder: any Encoder) throws {
|
|
func encode(to encoder: any Encoder) throws {
|
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
|
- try container.encode(timestamp, forKey: .timestamp)
|
|
|
|
|
try container.encode(category, forKey: .category)
|
|
try container.encode(category, forKey: .category)
|
|
|
try container.encode(tasks, forKey: .tasks)
|
|
try container.encode(tasks, forKey: .tasks)
|
|
|
try container.encode(name, forKey: .name)
|
|
try container.encode(name, forKey: .name)
|