// JanitorialQC.swift // ------------ // App entry point. Phase B adds LocalInspection, LocalIssue, // PendingPhoto, and SyncQueueEntry to the SwiftData model container. import SwiftUI import SwiftData @main struct JanitorialQC: App { @StateObject private var auth = AuthManager.shared @StateObject private var sync = SyncManager.shared var body: some Scene { WindowGroup { ContentView() .environmentObject(auth) .environmentObject(sync) } .modelContainer(for: [ // Phase A LocalFacility.self, LocalArea.self, LocalTemplate.self, // Phase B LocalInspection.self, LocalIssue.self, PendingPhoto.self, SyncQueueEntry.self, ], isUndoEnabled: false) { result in switch result { case .success(let container): Task { @MainActor in SyncManager.shared.modelContext = container.mainContext await AuthManager.shared.restoreSession() SyncManager.shared.startMonitoring() if SyncManager.shared.isOnline { await SyncManager.shared.triggerSync() } } case .failure(let error): fatalError("SwiftData container failed: \(error)") } } } }