import Foundation import SwiftUI class SessionManager: ObservableObject { static let shared = SessionManager() @Published var isLoggedIn = false private(set) var userId: String? private(set) var session: String? private init() { loadFromUserDefaults() } func setSession(userId: String, session: String) { self.userId = userId self.session = session self.isLoggedIn = true saveToUserDefaults() } func clear() { userId = nil session = nil isLoggedIn = false UserDefaults.standard.removeObject(forKey: "duesk_userId") UserDefaults.standard.removeObject(forKey: "duesk_session") } func getAuthHeaders() -> [String: String] { guard let userId = userId, let session = session else { return [:] } return [ "X-User-ID": userId, "X-Session": session ] } private func saveToUserDefaults() { UserDefaults.standard.set(userId, forKey: "duesk_userId") UserDefaults.standard.set(session, forKey: "duesk_session") } private func loadFromUserDefaults() { self.userId = UserDefaults.standard.string(forKey: "duesk_userId") self.session = UserDefaults.standard.string(forKey: "duesk_session") self.isLoggedIn = userId != nil && session != nil } }