05/02 Phase B
This commit is contained in:
@@ -1,32 +1,47 @@
|
||||
//
|
||||
// JanitorialQCApp.swift
|
||||
// JanitorialQC
|
||||
//
|
||||
// Created by Nguyen Ngo on 5/2/26.
|
||||
//
|
||||
// JanitorialQC.swift
|
||||
// ------------
|
||||
// App entry point. Phase B adds LocalInspection, LocalIssue,
|
||||
// PendingPhoto, and SyncQueueEntry to the SwiftData model container.
|
||||
|
||||
import SwiftUI
|
||||
import SwiftData
|
||||
|
||||
@main
|
||||
struct JanitorialQCApp: App {
|
||||
var sharedModelContainer: ModelContainer = {
|
||||
let schema = Schema([
|
||||
Item.self,
|
||||
])
|
||||
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
|
||||
struct JanitorialQC: App {
|
||||
|
||||
do {
|
||||
return try ModelContainer(for: schema, configurations: [modelConfiguration])
|
||||
} catch {
|
||||
fatalError("Could not create ModelContainer: \(error)")
|
||||
}
|
||||
}()
|
||||
@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)")
|
||||
}
|
||||
}
|
||||
.modelContainer(sharedModelContainer)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user