package com.soteloje.mindkeep.navigation
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
import androidx.compose.ui.graphics.vector.ImageVector
sealed class Screens(val route: String, val icon: ImageVector? = null) {
//Authentication
object Login : Screens("login", Icons.Default.Lock)
object RoleSelection : Screens("roleSelection")
object Signup : Screens("signup/{usertype}", Icons.Default.Create)
object Authentication : Screens("authentication", Icons.Default.Lock)
//Bottom Bar
object Home : Screens("home", Icons.Default.Home)
object Contacts : Screens("contacts", Icons.Default.Add)
object Profile : Screens("profile", Icons.Default.Person)
//Contacts
object AddContact : Screens("addContact", Icons.Default.Add)
object ContactRequests : Screens("contactRequests", Icons.Default.Face)
//ManagedUsers
object ManagedUsers : Screens("managedUsers")
object UserCharts : Screens("user_charts")
//Task management navigation
object TaskListWelcome : Screens("taskListWelcome")
//object AddTask : Screens("addTask")
// object AddTask : Screens("addTask?taskTitle={taskTitle}") {
// fun createRoute(taskTitle: String? = null): String {
// return if (taskTitle != null) {
// "addTask?taskTitle=$taskTitle"
// } else {
// "addTask"
// }
// }
// }
object AddTask : Screens("addTask?routineId={routineId}") {
fun createRoute(routineId: String): String {
return "addTask?routineId=$routineId"
}
}
data class UpdateTask(val userId: String, val taskId: String) :
Screens("updateTask/$userId/$taskId")
object TaskPriorityList : Screens("taskPriorityList")
object TaskActionDialog : Screens("taskActionDialog")
object TaskAddToRoutine : Screens("taskAddToRoutine")
//routine management navigation
object RoutineListWelcome : Screens("routineListWelcome")
object AddRoutine : Screens("addRoutine")
data class UpdateRoutine(val userId: String, val routineId: String) :
Screens("updateRoutine/$userId/$routineId")
data class TasksListInRoutine(val routineId: String):
Screens("taskListInRoutine/$routineId")
data class UpdateTaskInRoutine(val routineId: String?, val taskId:String):
Screens("updateTaskInRoutine/$routineId/$taskId")
object TemplateStartScreen : Screens("templateStartScreen")
object TemplateActivitiesScreen : Screens("templateActivitiesScreen")
object SelectedActivitiesScreen : Screens("selectedActivitiesScreen")
object LoadingStartScreen : Screens("loadingStartScreen")
// AR Navigation
object ArCreatePathCompScreen : Screens("arCreatePathFragment")
object ArFollowPathCompScreen : Screens("arFollowPathFragment")
object CreateItemScreen : Screens("createItemScreen")
}