OverrideStored+helper.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. 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 lastActiveOverrideNotYetUploadedToNightscout: NSPredicate {
  16. let date = Date.oneDayAgo
  17. return NSPredicate(
  18. format: "date >= %@ AND enabled == %@ AND isUploadedToNS == %@",
  19. date as NSDate,
  20. true as NSNumber,
  21. false as NSNumber
  22. )
  23. }
  24. }
  25. extension OverrideStored {
  26. static func fetch(_ predicate: NSPredicate, ascending: Bool, fetchLimit: Int? = nil) -> NSFetchRequest<OverrideStored> {
  27. let request = OverrideStored.fetchRequest()
  28. request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: ascending)]
  29. request.predicate = predicate
  30. if let fetchLimit = fetchLimit {
  31. request.fetchLimit = fetchLimit
  32. }
  33. return request
  34. }
  35. }
  36. extension OverrideStored {
  37. enum EventType: String, JSON {
  38. case nsExercise = "Exercise"
  39. }
  40. }