mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Move more repositories to domain module
This commit is contained in:
		| @@ -0,0 +1,26 @@ | ||||
| package tachiyomi.domain.chapter.repository | ||||
|  | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import tachiyomi.domain.chapter.model.Chapter | ||||
| import tachiyomi.domain.chapter.model.ChapterUpdate | ||||
|  | ||||
| interface ChapterRepository { | ||||
|  | ||||
|     suspend fun addAll(chapters: List<Chapter>): List<Chapter> | ||||
|  | ||||
|     suspend fun update(chapterUpdate: ChapterUpdate) | ||||
|  | ||||
|     suspend fun updateAll(chapterUpdates: List<ChapterUpdate>) | ||||
|  | ||||
|     suspend fun removeChaptersWithIds(chapterIds: List<Long>) | ||||
|  | ||||
|     suspend fun getChapterByMangaId(mangaId: Long): List<Chapter> | ||||
|  | ||||
|     suspend fun getBookmarkedChaptersByMangaId(mangaId: Long): List<Chapter> | ||||
|  | ||||
|     suspend fun getChapterById(id: Long): Chapter? | ||||
|  | ||||
|     suspend fun getChapterByMangaIdAsFlow(mangaId: Long): Flow<List<Chapter>> | ||||
|  | ||||
|     suspend fun getChapterByUrlAndMangaId(url: String, mangaId: Long): Chapter? | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| package tachiyomi.domain.history.repository | ||||
|  | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import tachiyomi.domain.history.model.HistoryUpdate | ||||
| import tachiyomi.domain.history.model.HistoryWithRelations | ||||
|  | ||||
| interface HistoryRepository { | ||||
|  | ||||
|     fun getHistory(query: String): Flow<List<HistoryWithRelations>> | ||||
|  | ||||
|     suspend fun getLastHistory(): HistoryWithRelations? | ||||
|  | ||||
|     suspend fun getTotalReadDuration(): Long | ||||
|  | ||||
|     suspend fun resetHistory(historyId: Long) | ||||
|  | ||||
|     suspend fun resetHistoryByMangaId(mangaId: Long) | ||||
|  | ||||
|     suspend fun deleteAllHistory(): Boolean | ||||
|  | ||||
|     suspend fun upsertHistory(historyUpdate: HistoryUpdate) | ||||
| } | ||||
| @@ -0,0 +1,24 @@ | ||||
| package tachiyomi.domain.library.model | ||||
|  | ||||
| import tachiyomi.domain.manga.model.Manga | ||||
|  | ||||
| data class LibraryManga( | ||||
|     val manga: Manga, | ||||
|     val category: Long, | ||||
|     val totalChapters: Long, | ||||
|     val readCount: Long, | ||||
|     val bookmarkCount: Long, | ||||
|     val latestUpload: Long, | ||||
|     val chapterFetchedAt: Long, | ||||
|     val lastRead: Long, | ||||
| ) { | ||||
|     val id: Long = manga.id | ||||
|  | ||||
|     val unreadCount | ||||
|         get() = totalChapters - readCount | ||||
|  | ||||
|     val hasBookmarks | ||||
|         get() = bookmarkCount > 0 | ||||
|  | ||||
|     val hasStarted = readCount > 0 | ||||
| } | ||||
| @@ -0,0 +1,37 @@ | ||||
| package tachiyomi.domain.manga.repository | ||||
|  | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import tachiyomi.domain.library.model.LibraryManga | ||||
| import tachiyomi.domain.manga.model.Manga | ||||
| import tachiyomi.domain.manga.model.MangaUpdate | ||||
|  | ||||
| interface MangaRepository { | ||||
|  | ||||
|     suspend fun getMangaById(id: Long): Manga | ||||
|  | ||||
|     suspend fun getMangaByIdAsFlow(id: Long): Flow<Manga> | ||||
|  | ||||
|     suspend fun getMangaByUrlAndSourceId(url: String, sourceId: Long): Manga? | ||||
|  | ||||
|     fun getMangaByUrlAndSourceIdAsFlow(url: String, sourceId: Long): Flow<Manga?> | ||||
|  | ||||
|     suspend fun getFavorites(): List<Manga> | ||||
|  | ||||
|     suspend fun getLibraryManga(): List<LibraryManga> | ||||
|  | ||||
|     fun getLibraryMangaAsFlow(): Flow<List<LibraryManga>> | ||||
|  | ||||
|     fun getFavoritesBySourceId(sourceId: Long): Flow<List<Manga>> | ||||
|  | ||||
|     suspend fun getDuplicateLibraryManga(title: String): Manga? | ||||
|  | ||||
|     suspend fun resetViewerFlags(): Boolean | ||||
|  | ||||
|     suspend fun setMangaCategories(mangaId: Long, categoryIds: List<Long>) | ||||
|  | ||||
|     suspend fun insert(manga: Manga): Long? | ||||
|  | ||||
|     suspend fun update(update: MangaUpdate): Boolean | ||||
|  | ||||
|     suspend fun updateAll(mangaUpdates: List<MangaUpdate>): Boolean | ||||
| } | ||||
| @@ -0,0 +1,12 @@ | ||||
| package tachiyomi.domain.source.repository | ||||
|  | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import tachiyomi.domain.source.model.SourceData | ||||
|  | ||||
| interface SourceDataRepository { | ||||
|     fun subscribeAll(): Flow<List<SourceData>> | ||||
|  | ||||
|     suspend fun getSourceData(id: Long): SourceData? | ||||
|  | ||||
|     suspend fun upsertSourceData(id: Long, lang: String, name: String) | ||||
| } | ||||
| @@ -0,0 +1,9 @@ | ||||
| package tachiyomi.domain.updates.repository | ||||
|  | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import tachiyomi.domain.updates.model.UpdatesWithRelations | ||||
|  | ||||
| interface UpdatesRepository { | ||||
|  | ||||
|     fun subscribeAll(after: Long): Flow<List<UpdatesWithRelations>> | ||||
| } | ||||
		Reference in New Issue
	
	Block a user