From a8ffd5389d6dfa5365c1c9466b1fd54146f2b546 Mon Sep 17 00:00:00 2001 From: Maxwell Date: Fri, 23 Aug 2019 00:14:18 +0200 Subject: [PATCH] Add Media List Contract & Concrete Model #24 --- .../response/core/medialist/MediaList.kt | 25 ++++++++++- .../core/medialist/contract/IMediaList.kt | 41 ++++++++++++++++++- 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/data/src/main/java/co/anitrend/data/model/response/core/medialist/MediaList.kt b/data/src/main/java/co/anitrend/data/model/response/core/medialist/MediaList.kt index 5548590cd..9471d9765 100644 --- a/data/src/main/java/co/anitrend/data/model/response/core/medialist/MediaList.kt +++ b/data/src/main/java/co/anitrend/data/model/response/core/medialist/MediaList.kt @@ -18,14 +18,35 @@ package co.anitrend.data.model.response.core.medialist import androidx.room.PrimaryKey +import co.anitrend.data.model.response.core.media.Media +import co.anitrend.data.model.response.core.media.contract.IMedia import co.anitrend.data.model.response.core.medialist.contract.IMediaList +import co.anitrend.data.model.response.meta.FuzzyDate +import co.anitrend.data.usecase.medialist.attributes.MediaListStatus /** [MediaList](https://anilist.github.io/ApiV2-GraphQL-Docs/medialist.doc.html) * List of anime or manga * - * */ data class MediaList( @PrimaryKey - override val id: Long + override val id: Long, + override val advancedScores: Map?, + override val completedAt: FuzzyDate?, + override val createdAt: Long?, + override val customLists: Map?, + override val hiddenFromStatusLists: Boolean?, + override val media: Media?, + override val mediaId: Int, + override val notes: String?, + override val priority: Int?, + override val private: Boolean?, + override val progress: Int?, + override val progressVolumes: Int?, + override val repeat: Int?, + override val score: Float?, + override val startedAt: FuzzyDate?, + override val status: MediaListStatus?, + override val updatedAt: Long?, + override val userId: Int ) : IMediaList \ No newline at end of file diff --git a/data/src/main/java/co/anitrend/data/model/response/core/medialist/contract/IMediaList.kt b/data/src/main/java/co/anitrend/data/model/response/core/medialist/contract/IMediaList.kt index dc6a630e1..6d17efcac 100644 --- a/data/src/main/java/co/anitrend/data/model/response/core/medialist/contract/IMediaList.kt +++ b/data/src/main/java/co/anitrend/data/model/response/core/medialist/contract/IMediaList.kt @@ -18,11 +18,50 @@ package co.anitrend.data.model.response.core.medialist.contract import co.anitrend.data.entity.contract.IEntity +import co.anitrend.data.model.response.core.media.contract.IMedia +import co.anitrend.data.model.response.meta.FuzzyDate +import co.anitrend.data.usecase.medialist.attributes.MediaListStatus /** [MediaList](https://anilist.github.io/ApiV2-GraphQL-Docs/medialist.doc.html) + * MediaList contract for anime or manga * - * + * @property advancedScores Map of advanced scores with name keys + * @property completedAt When the entry was completed by the user + * @property createdAt When the entry data was created + * @property customLists Map of booleans for which custom lists the entry are in + * @property hiddenFromStatusLists If the entry shown be hidden from non-custom lists + * @property media The media for the list entry + * @property mediaId The id of the media + * @property notes Text notes + * @property priority Priority of planning + * @property private If the entry should only be visible to authenticated user + * @property progress The amount of episodes/chapters consumed by the user + * @property progressVolumes The amount of volumes read by the user + * @property repeat The amount of times the user has rewatched/read the media + * @property score The score of the entry + * @property startedAt When the entry was started by the user + * @property status The watching/reading status + * @property updatedAt When the entry data was last updated + * @property userId The id of the user owner of the list entry */ interface IMediaList : IEntity { + val advancedScores: Map? + val completedAt: FuzzyDate? + val createdAt: Long? + val customLists: Map? + val hiddenFromStatusLists: Boolean? + val media: IMedia? + val mediaId: Int + val notes: String? + val priority: Int? + val private: Boolean? + val progress: Int? + val progressVolumes: Int? + val repeat: Int? + val score: Float? + val startedAt: FuzzyDate? + val status: MediaListStatus? + val updatedAt: Long? + val userId: Int } \ No newline at end of file