package com.vpn.fastestvpnservice.navigation

import androidx.compose.runtime.Composable
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import com.vpn.fastestvpnservice.screens.Login
import com.vpn.fastestvpnservice.screens.ServerList
import com.vpn.fastestvpnservice.screens.accountScreensAll.ChangePassword
import com.vpn.fastestvpnservice.screens.accountScreensAll.FavoriteServers
import com.vpn.fastestvpnservice.screens.accountScreensAll.SubscriptionScreen
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Account
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Help
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Home
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.Settings
import com.vpn.fastestvpnservice.screens.helpScreensAll.About
import com.vpn.fastestvpnservice.screens.helpScreensAll.CustomerSupport
import com.vpn.fastestvpnservice.screens.helpScreensAll.FAQ
import com.vpn.fastestvpnservice.screens.helpScreensAll.PrivacyPolicy
import com.vpn.fastestvpnservice.screens.helpScreensAll.TermsAndConditions
import com.vpn.fastestvpnservice.screens.settingsScreenAll.Notifications
import com.vpn.fastestvpnservice.screens.settingsScreenAll.SplitTunneling
import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
import com.vpn.fastestvpnservice.sealedClass.Screen

@Composable
fun BottomBarNavGraph(navHostController: NavHostController, settingsNavHostController: NavHostController) {
    NavHost(navController = navHostController,
        startDestination = BottomBarScreen.Home.route) {

        composable(route = BottomBarScreen.Home.route) {
            Home(navHostController = navHostController)
        }
        composable(route = BottomBarScreen.Settings.route) {
            Settings(navHostController = navHostController)
        }
        composable(route = BottomBarScreen.Help.route) {
            Help(navHostController = navHostController)
        }
        composable(route = BottomBarScreen.Account.route) {
            Account(navHostController = navHostController,
                settingsNavHostController = settingsNavHostController)
        }
        composable(route = Screen.FAQ.route) {
            FAQ(navHostController = navHostController)
        }
        composable(route = Screen.PrivacyPolicy.route) {
            PrivacyPolicy(navHostController = navHostController)
        }
        composable(route = Screen.TermsAndConditions.route) {
            TermsAndConditions(navHostController = navHostController)
        }
        composable(route = Screen.About.route) {
            About(navHostController = navHostController)
        }
        composable(route = Screen.ChangePassword.route) {
            ChangePassword(navHostController = navHostController)
        }
        composable(route = Screen.ServerList.route) {
            ServerList(navHostController = navHostController, false)
        }
        composable(route = Screen.Notifications.route) {
            Notifications(navHostController = navHostController)
        }
        composable(route = Screen.SplitTunneling.route) {
            SplitTunneling(navHostController = navHostController)
        }
        composable(route = Screen.FavoriteServers.route) {
            FavoriteServers(navHostController = navHostController)
        }
        composable(route = Screen.Subscription.route) {
            SubscriptionScreen(navHostController = navHostController)
        }
        composable(route = Screen.CustomerSupport.route) {
            CustomerSupport(navHostController = navHostController)
        }

        /* Again declare for login because of different -> navHostController */
//        composable(route = Screen.Login.route) {
//            Login(navHostController = navHostController)
//        }
    }
}