64 lines
1.7 KiB
Kotlin
64 lines
1.7 KiB
Kotlin
package dev.jdtech.jellyfin.models
|
|
|
|
import androidx.room.Entity
|
|
import androidx.room.ForeignKey
|
|
import androidx.room.Index
|
|
import androidx.room.PrimaryKey
|
|
import java.time.LocalDateTime
|
|
import java.util.UUID
|
|
|
|
@Entity(
|
|
tableName = "episodes",
|
|
foreignKeys = [
|
|
ForeignKey(
|
|
entity = FindroidSeasonDto::class,
|
|
parentColumns = arrayOf("id"),
|
|
childColumns = arrayOf("seasonId"),
|
|
onDelete = ForeignKey.CASCADE,
|
|
),
|
|
ForeignKey(
|
|
entity = FindroidShowDto::class,
|
|
parentColumns = arrayOf("id"),
|
|
childColumns = arrayOf("seriesId"),
|
|
onDelete = ForeignKey.CASCADE,
|
|
),
|
|
],
|
|
indices = [
|
|
Index("seasonId"),
|
|
Index("seriesId"),
|
|
],
|
|
)
|
|
data class FindroidEpisodeDto(
|
|
@PrimaryKey
|
|
val id: UUID,
|
|
val serverId: String?,
|
|
val seasonId: UUID,
|
|
val seriesId: UUID,
|
|
val name: String,
|
|
val seriesName: String,
|
|
val overview: String,
|
|
val indexNumber: Int,
|
|
val indexNumberEnd: Int?,
|
|
val parentIndexNumber: Int,
|
|
val runtimeTicks: Long,
|
|
val premiereDate: LocalDateTime?,
|
|
val communityRating: Float?,
|
|
)
|
|
|
|
fun FindroidEpisode.toFindroidEpisodeDto(serverId: String? = null): FindroidEpisodeDto {
|
|
return FindroidEpisodeDto(
|
|
id = id,
|
|
serverId = serverId,
|
|
seasonId = seasonId,
|
|
seriesId = seriesId,
|
|
name = name,
|
|
seriesName = seriesName,
|
|
overview = overview,
|
|
indexNumber = indexNumber,
|
|
indexNumberEnd = indexNumberEnd,
|
|
parentIndexNumber = parentIndexNumber,
|
|
runtimeTicks = runtimeTicks,
|
|
premiereDate = premiereDate,
|
|
communityRating = communityRating,
|
|
)
|
|
}
|