package com.zaojiao.app.core.nav

import androidx.navigation.NavOptions

sealed class NavigationCommand {
    object NavigateUp : NavigationCommand()

    object PopAll : NavigationCommand()

    object PopBackStack : NavigationCommand()

    data class NavigateToRoute(
        val route: String,
        val options: NavOptions? = null,
    ) : NavigationCommand()

    data class NavigateUpWithResult<T>(
        val key: String,
        val result: T,
        val route: String? = null,
    ) : NavigationCommand()

    data class PopUpToRoute(
        val route: String,
        val inclusive: Boolean,
    ) : NavigationCommand()
}