Screaming-Reminder/Screaming Reminder/Models/Notification.swift

36 lines
977 B
Swift
Raw Permalink Normal View History

2024-07-11 10:38:11 +00:00
//
// Item.swift
// Screaming Reminder
//
// Created by Amine Bou on 11/07/2024.
//
import Foundation
import SwiftUI
final class Notification: CustomStringConvertible {
var reminder: Reminder
var triggers: [UNCalendarNotificationTrigger]
init(reminder: Reminder) {
self.reminder = reminder
self.triggers = getTriggersForReminder(reminder: reminder)
}
public var description: String { return "\(reminder) + \(triggers)" }
}
func getTriggersForReminder(reminder: Reminder) -> [UNCalendarNotificationTrigger] {
return reminder.when.map {
let components = NSCalendar.current.dateComponents([.second, .minute, .hour], from: $0)
return UNCalendarNotificationTrigger(dateMatching: components, repeats: true)
}
}
func getIdentifier(reminder: Reminder, trigger: UNCalendarNotificationTrigger) -> String {
return "\(reminder.label)-\(trigger.dateComponents.hour ?? -1)-\(trigger.dateComponents.minute ?? -1)"
}