mirror of
https://github.com/bbara04/Purefin.git
synced 2026-07-23 19:26:50 +00:00
refactor: extract core-model into its own module
This commit is contained in:
@@ -29,6 +29,7 @@ kotlin {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core-model"))
|
||||
implementation(libs.media3.common)
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
implementation(libs.jellyfin.core)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
data class CastMember(
|
||||
val name: String,
|
||||
val role: String,
|
||||
val imageUrl: String?
|
||||
)
|
||||
@@ -1,20 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Episode(
|
||||
val id: UUID,
|
||||
val seriesId: UUID,
|
||||
val seasonId: UUID,
|
||||
val index: Int,
|
||||
val title: String,
|
||||
val synopsis: String,
|
||||
val releaseDate: String,
|
||||
val rating: String,
|
||||
val runtime: String,
|
||||
val progress: Double?,
|
||||
val watched: Boolean,
|
||||
val format: String,
|
||||
val imageUrlPrefix: String,
|
||||
val cast: List<CastMember>
|
||||
)
|
||||
@@ -1,18 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Library(
|
||||
val id: UUID,
|
||||
val name: String,
|
||||
val type: LibraryKind,
|
||||
val posterUrl: String,
|
||||
val series: List<Series>? = null,
|
||||
val movies: List<Movie>? = null,
|
||||
) {
|
||||
init {
|
||||
require(series != null || movies != null) { "Either series or movie must be provided" }
|
||||
require(series == null || movies == null) { "Only one of series or movie can be provided" }
|
||||
require(type == LibraryKind.SERIES || type == LibraryKind.MOVIES) { "Invalid type: $type" }
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
enum class LibraryKind {
|
||||
MOVIES,
|
||||
SERIES,
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
sealed class Media(
|
||||
val id: UUID,
|
||||
val type: MediaKind,
|
||||
) {
|
||||
class MovieMedia(val movieId: UUID) : Media(movieId, MediaKind.MOVIE)
|
||||
class SeriesMedia(val seriesId: UUID) : Media(seriesId, MediaKind.SERIES)
|
||||
class SeasonMedia(val seasonId: UUID, val seriesId: UUID) : Media(seasonId, MediaKind.SEASON)
|
||||
class EpisodeMedia(val episodeId: UUID, val seriesId: UUID) : Media(episodeId, MediaKind.EPISODE)
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
enum class MediaKind {
|
||||
MOVIE,
|
||||
SERIES,
|
||||
SEASON,
|
||||
EPISODE,
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
enum class SegmentType(val value: Int) {
|
||||
INTRO(0),
|
||||
OUTRO(1),
|
||||
MAIN_CONTENT(2),
|
||||
PREVIEW(3),
|
||||
RECAP(4);
|
||||
|
||||
companion object {
|
||||
fun fromValue(value: Int): SegmentType? =
|
||||
entries.firstOrNull { it.value == value }
|
||||
}
|
||||
}
|
||||
|
||||
data class MediaSegment(
|
||||
val id: UUID,
|
||||
val type: SegmentType,
|
||||
val startMs: Long,
|
||||
val endMs: Long
|
||||
)
|
||||
@@ -1,20 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Movie(
|
||||
val id: UUID,
|
||||
val libraryId: UUID,
|
||||
val title: String,
|
||||
val progress: Double?,
|
||||
val watched: Boolean,
|
||||
val year: String,
|
||||
val rating: String,
|
||||
val runtime: String,
|
||||
val format: String,
|
||||
val synopsis: String,
|
||||
val imageUrlPrefix: String,
|
||||
val audioTrack: String,
|
||||
val subtitles: String,
|
||||
val cast: List<CastMember>
|
||||
)
|
||||
@@ -1,13 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Season(
|
||||
val id: UUID,
|
||||
val seriesId: UUID,
|
||||
val name: String,
|
||||
val index: Int,
|
||||
val unwatchedEpisodeCount: Int,
|
||||
val episodeCount: Int,
|
||||
val episodes: List<Episode>
|
||||
)
|
||||
@@ -1,16 +0,0 @@
|
||||
package hu.bbara.purefin.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Series(
|
||||
val id: UUID,
|
||||
val libraryId: UUID,
|
||||
val name: String,
|
||||
val synopsis: String,
|
||||
val year: String,
|
||||
val imageUrlPrefix: String,
|
||||
val unwatchedEpisodeCount: Int,
|
||||
val seasonCount: Int,
|
||||
val seasons: List<Season>,
|
||||
val cast: List<CastMember>
|
||||
)
|
||||
Reference in New Issue
Block a user