OverrideStored+helper.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import CoreData
  2. import Foundation
  3. extension NSPredicate {
  4. static var allOverridePresets: NSPredicate {
  5. NSPredicate(format: "isPreset == %@", true as NSNumber)
  6. }
  7. static var lastActiveOverride: NSPredicate {
  8. // For non-indefinite overrides, we still want to filter by date
  9. // For indefinite overrides, we want them regardless of date
  10. NSPredicate(
  11. format: "(date >= %@ OR indefinite == %@) AND enabled == %@",
  12. Date.oneDayAgo as NSDate,
  13. true as NSNumber,
  14. true as NSNumber
  15. )
  16. }
  17. }
  18. extension OverrideStored {
  19. static func fetch(_ predicate: NSPredicate, ascending: Bool, fetchLimit: Int? = nil) -> NSFetchRequest<OverrideStored> {
  20. let request = OverrideStored.fetchRequest()
  21. request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: ascending)]
  22. request.predicate = predicate
  23. if let fetchLimit = fetchLimit {
  24. request.fetchLimit = fetchLimit
  25. }
  26. return request
  27. }
  28. }
  29. extension OverrideStored {
  30. enum EventType: String, JSON {
  31. case nsExercise = "Exercise"
  32. }
  33. }