import SwiftUI
import SwiftData

struct RootSplitView: View {
    @Environment(\.modelContext) private var modelContext
    @Query(filter: #Predicate<StudySession> { $0.isActive == true }) private var activeSessions: [StudySession]

    @State private var path = NavigationPath()
    @State private var studySessionID: String?

    var body: some View {
        NavigationStack(path: $path) {
            HomeDeckView(path: $path, onOpenStudy: openStudy)
                .navigationDestination(for: ChildRoute.self) { route in
                    switch route {
                    case .download:
                        DownloadBrowserView()
                    case .aiPair:
                        AiPairView()
                    case .study(let sessionID):
                        StudyContainerView(sessionID: sessionID)
                    }
                }
        }
        .onAppear {
            CourseStore(modelContext: modelContext).migrateIfNeeded()
            if let active = activeSessions.first {
                studySessionID = active.id
            }
        }
    }

    private func openStudy(session: StudySession) {
        studySessionID = session.id
        path.append(ChildRoute.study(sessionID: session.id))
    }
}
