//
//  LaunchManager.swift
//  punchnet
//
//  Created by 安礼成 on 2026/3/23.
//
import ServiceManagement
import Observation

@Observable
class LaunchManager {
    // 获取当前主 App 的服务实例
    private let service = SMAppService.mainApp
    
    // 检查当前是否已开启自启动
    var launchAtLogin: Bool
    
    init() {
        self.launchAtLogin = (service.status == .enabled)
    }
    
    func toggleLaunchAtLogin(enabled: Bool) throws {
        if enabled {
            try service.register()
        } else {
            try service.unregister()
        }
        
        // 3. 重点：操作完成后，手动更新存储属性以触发 View 刷新
        self.launchAtLogin = (service.status == .enabled)
    }
    
    // 4. 提供一个手动同步方法（用于应对用户在系统设置中修改的情况）
    func refreshLaunchStatus() {
        self.launchAtLogin = (service.status == .enabled)
    }
    
}
