VidiDin-Android/app/src/main/java/com/gamedog/vididin/beans/YoutubeBeans.kt

123 lines
2.8 KiB
Kotlin

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<YoutubeVideo>,
) /*: 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()
}