package ru.fincode.tsudesk.core.navigation

import kotlinx.serialization.Serializable

@Serializable
sealed interface AppRoute {

    @Serializable
    data object Splash : AppRoute

    /**
     * Root-граф приложения после сплеша.
     * Внутри него лежат табы: Schedule/News/Progress.
     */
    @Serializable
    data object Main : AppRoute

    // Tabs
    @Serializable
    data object Schedule : AppRoute

    @Serializable
    data object News : AppRoute

    @Serializable
    data object Progress : AppRoute

    @kotlinx.serialization.Serializable
    data object Settings : AppRoute

    @Serializable
    data class ScheduleDetails(
        val lessonId: Long
    ) : AppRoute

    @Serializable
    data class NewsDetails(
        val id: String
    ) : AppRoute
}
