Task.swift 820 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // Task.swift
  3. // Todos
  4. //
  5. // Created by Sam Jaffe on 2/28/26.
  6. //
  7. import Foundation
  8. import SwiftData
  9. enum Status : String, CaseIterable, Identifiable, Codable {
  10. case Default = ""
  11. case Complete = "V"
  12. case InProgress = "C"
  13. case Hiatus = "H"
  14. case Waiting = "R"
  15. var id: Self { self }
  16. var description: String { self.rawValue }
  17. var isStrong: Bool {
  18. self == .Complete || self == .Hiatus || self == .Waiting
  19. }
  20. }
  21. @Model
  22. final class SubTask {
  23. var name: String
  24. var notes: String = ""
  25. var status: Status = Status.Default
  26. init(name: String) {
  27. self.name = name
  28. }
  29. }
  30. @Model
  31. final class Task {
  32. var name: String
  33. var tags: [String] = []
  34. var subtasks: [SubTask] = []
  35. var notes: String = ""
  36. var status: Status = Status.Default
  37. init(name: String) {
  38. self.name = name
  39. }
  40. }