TempTargetStored+Helper.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import CoreData
  2. import Foundation
  3. extension NSPredicate {
  4. static var allTempTargetPresets: NSPredicate {
  5. NSPredicate(format: "isPreset == %@", true as NSNumber)
  6. }
  7. static var lastActiveTempTarget: NSPredicate {
  8. let date = Date.oneDayAgo
  9. return NSPredicate(
  10. format: "date >= %@ AND enabled == %@",
  11. date as NSDate,
  12. true as NSNumber
  13. )
  14. }
  15. static var tempTargetsForMainChart: NSPredicate {
  16. let date = Date.oneDayAgo
  17. return NSPredicate(
  18. format: "(date >= %@ AND enabled == %@) OR (date >= %@ AND enabled == %@)",
  19. date as NSDate,
  20. true as NSNumber,
  21. Date() as NSDate,
  22. false as NSNumber
  23. )
  24. }
  25. }
  26. extension TempTargetStored {
  27. static func fetch(_ predicate: NSPredicate, ascending: Bool, fetchLimit: Int? = nil) -> NSFetchRequest<TempTargetStored> {
  28. let request = TempTargetStored.fetchRequest()
  29. request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: ascending)]
  30. request.predicate = predicate
  31. if let fetchLimit = fetchLimit {
  32. request.fetchLimit = fetchLimit
  33. }
  34. return request
  35. }
  36. }