123 lines
2.8 KiB
Kotlin
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()
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|