| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- //
- // StatusList.swift
- // Todos
- //
- // Created by Sam Jaffe on 3/7/26.
- //
- import Foundation
- import SwiftData
- @Model // Must be @Model to watch changes to children
- final class StatusList {
- var todo: Bool = true
- var complete: Bool = true
- var inProgess: Bool = true
- var hiatus: Bool = true
- var waiting: Bool = true
- var unknown: Bool = true
- init() {}
- var all: Bool {
- Status.allCases.map({ test($0) }).allSatisfy({ $0 })
- }
- var description: String {
- let unset = Status.allCases.filter({ !test($0) })
- return "Hiding status\(unset.count == 1 ? "" : "es"): " +
- unset.map(\.description).joined(separator: ", ")
- }
- func test(_ index: Status) -> Bool {
- switch index {
- case .todo: return todo
- case .complete: return complete
- case .inProgress: return inProgess
- case .hiatus: return hiatus
- case .waiting: return waiting
- case .unknown: return unknown
- }
- }
- }
|