KasztelanKarta/Kasztelan/NotificationService.swift
2026-10-16 23:37:49 +01:00

23 lines
1023 B
Swift

import Foundation
import UserNotifications
enum NotificationService {
static func requestPermission() async {
_ = try? await UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge])
}
static func show(_ message: KasztelanMessage) async {
let settings = await UNUserNotificationCenter.current().notificationSettings()
guard settings.authorizationStatus == .authorized || settings.authorizationStatus == .provisional else { return }
let content = UNMutableNotificationContent()
content.title = "KASZTELAN"
content.subtitle = message.title
content.sound = .default
content.threadIdentifier = "kasztelan-messages"
content.categoryIdentifier = "KASZTELAN_MESSAGE"
content.userInfo = ["message_id": message.id]
let request = UNNotificationRequest(identifier: "kasztelan-\(message.id)", content: content, trigger: nil)
try? await UNUserNotificationCenter.current().add(request)
}
}