package com.atridad.ascently.navigation

import kotlinx.serialization.Serializable

@Serializable
sealed class Screen {
    @Serializable data object Sessions : Screen()

    @Serializable data object Problems : Screen()

    @Serializable data object Analytics : Screen()

    @Serializable data object Gyms : Screen()

    @Serializable data object Settings : Screen()

    @Serializable data class SessionDetail(val sessionId: String) : Screen()

    @Serializable data class ProblemDetail(val problemId: String) : Screen()

    @Serializable data class GymDetail(val gymId: String) : Screen()

    @Serializable data class AddEditGym(val gymId: String? = null) : Screen()

    @Serializable
    data class AddEditProblem(val problemId: String? = null, val gymId: String? = null) : Screen()

    @Serializable
    data class AddEditSession(val sessionId: String? = null, val gymId: String? = null) : Screen()
}
