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) } }