//
// AppTerminator.swift
// IceGlass
//
// Copyright 2026 Rouslan Zenetl. All Rights Reserved.
//

import AppKit

final class AppTerminator {
    static func terminate(
        title: String = "Critical Error",
        message: String = "The application failed to initialize properly and must close."
    ) {
        DispatchQueue.main.async {
            let logger = IceGlassLogger(
                subsystem: Bundle.main.bundleIdentifier ?? "dev.rzen.indie.IceGlass",
                category: "AppTerminator"
            )

            logger.error("\(title): \(message)")

            let alert = NSAlert()
            alert.messageText = title
            alert.informativeText = message
            alert.alertStyle = .critical
            alert.addButton(withTitle: "OK")
            alert.runModal()

            NSApplication.shared.terminate(nil)
        }
    }
}
