package com.gamedog.vididin.beans import com.ama.core.model.BaseFragmentStateDiffItem import kotlinx.serialization.Serializable @Serializable data class ResYoutubeChannel( val id: String, val name: String, ) : BaseFragmentStateDiffItem { override fun getPrimaryKey() = id override fun getItemId() = id.hashCode().toLong() } @Serializable data class ResYoutubePlayList ( val kind: String, val etag: String, // TODO - this is Etag type val nextPageToken: String, val prevPageToken: String, val pageInfo: PageInfo, val items: List, ) /*: BaseFragmentStateDiffItem { override fun getPrimaryKey() = pageInfo override fun getItemId() = pageInfo.hashCode().toLong() }*/ @Serializable data class PageInfo( val totalResults: Int, val resultsPerPage: Int, ) : BaseFragmentStateDiffItem { override fun getPrimaryKey() = totalResults override fun getItemId() = totalResults.hashCode().toLong() } @Serializable data class YoutubeVideo( val kind: String, val etag: String, val id: String, val snippet: Snippet, val status: Status, val contentDetails: ContentDetails, val player: Player, val localizations: Localizations, ) : BaseFragmentStateDiffItem { override fun getPrimaryKey() = id override fun getItemId() = id.hashCode().toLong() } @Serializable data class ContentDetails( val itemCount: Int, ): BaseFragmentStateDiffItem { override fun getPrimaryKey() = itemCount override fun getItemId() = itemCount.hashCode().toLong() } @Serializable data class Player( val embedHtml: String, ): BaseFragmentStateDiffItem { override fun getPrimaryKey() = embedHtml override fun getItemId() = embedHtml.hashCode().toLong() } @Serializable data class Localizations( val title: String, val description: String, ): BaseFragmentStateDiffItem { override fun getPrimaryKey() = title override fun getItemId() = title.hashCode().toLong() } @Serializable data class Snippet( val publishedAt: String, val channelId: String, val title: String, val description: String, val thumbnails: String, // val channelTitle: String, val defaultLanguage: String, val localized: Localized, ) : BaseFragmentStateDiffItem { override fun getPrimaryKey() = channelId override fun getItemId() = channelId.hashCode().toLong() } @Serializable data class Localized( val title: String, val description: String, ) : BaseFragmentStateDiffItem { override fun getPrimaryKey() = title override fun getItemId() = title.hashCode().toLong() } @Serializable data class Status( val privacyStatus: String, val podcastStatus: Int, ): BaseFragmentStateDiffItem { override fun getPrimaryKey() = podcastStatus override fun getItemId() = privacyStatus.hashCode().toLong() }