Tag.swift 612 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // Tag.swift
  3. // Todos
  4. //
  5. // Created by Sam Jaffe on 3/5/26.
  6. //
  7. import Foundation
  8. import SwiftData
  9. @Model
  10. final class Tag: Codable {
  11. var id: String
  12. var task: Task?
  13. init(id: String, parent: Task? = nil) {
  14. self.id = id
  15. self.task = parent
  16. }
  17. func like(_ str: String) -> Bool {
  18. return id.caseInsensitiveCompare(str) == .orderedSame
  19. }
  20. required init(from decoder: any Decoder) throws {
  21. id = try decoder.singleValueContainer().decode(String.self)
  22. }
  23. func encode(to encoder: any Encoder) throws {
  24. var single = encoder.singleValueContainer()
  25. try single.encode(id)
  26. }
  27. }