WatchlistUiState.kt

package com.louisfn.somovie.feature.home.watchlist

import com.louisfn.somovie.domain.model.Movie

internal sealed interface WatchlistUiState {

    object None : WatchlistUiState

    data class AccountLoggedIn(
        val contentState: ContentState = ContentState.NONE,
        val loadNextPageState: LoadNextPageState = LoadNextPageState.IDLE,
    ) : WatchlistUiState {
        enum class ContentState { NONE, LOADING, RETRY, SUCCESS }
        enum class LoadNextPageState { IDLE, LOADING, RETRY }
    }

    object AccountDisconnected : WatchlistUiState
}

internal data class MovieItem(
    val movie: Movie,
    val isHidden: Boolean,
)