This commit is contained in:
Hartmut Bauer committed 2026-10-21 23:47:44 +02:00
1 parent 3d165ee610
commit e8bd1bcb97
9 files changed
+135 -57

No files matched your search

@@ -20,7 +20,11 @@ object BooksTable : IntIdTable("books") {
var type = integer("type")
var read = bool("read").default(false)
var comments = varchar("comments", 255)
var parentBook = optReference("parent_book_id", id)
// Dieses Buch ist Teil eines Sammelbands.
// Null bedeutet: kein übergeordneter Sammelband.
var parent = optReference("parent_id", id)
val cover = blob("cover").nullable()
}
@@ -48,10 +52,12 @@ class BookDAO(id: EntityID<Int>) : IntEntity(id) {
val tags by TagsToBookDAO referrersOn TagsToBookTable.bookId
// Verweis auf Sammelband (falls dieses Buch ein Teilroman ist)
var parentBook by BookDAO optionalReferencedOn BooksTable.parentBook
var parent by BookDAO optionalReferencedOn BooksTable.parent
// Enthaltene Einzelromane (falls dieses Buch der Sammelband ist)
val containedBooks by BookDAO optionalReferrersOn BooksTable.parentBook
val containedBooks by BookDAO optionalReferrersOn BooksTable.parent
val samplerEntry by SamplerDAO optionalBackReferencedOn SamplerTable.bookId
}
fun bookDaoToModel(dao: BookDAO, includeChildren: Boolean = true): Book = Book(
@@ -72,12 +78,15 @@ fun bookDaoToModel(dao: BookDAO, includeChildren: Boolean = true): Book = Book(
series = if (dao.series != null) Series(dao.series!!.id.value, dao.series!!.name) else null,
seriesIndex = dao.seriesIndex,
dao.parentBook?.id?.value,
parentBookId = dao.parent?.id?.value,
containedBooks = if (includeChildren) {
dao.containedBooks.map { bookDaoToModel(it, includeChildren = false) }
dao.containedBooks.map { child ->
bookDaoToModel(child, includeChildren = false)
}
} else {
emptyList()
},
isSampler = dao.samplerEntry != null,
artists = dao.artists.map {
ArtistForBook(