better library organization

This commit is contained in:
sergeych committed 2026-05-17 23:50:21 +03:00
1 parent 06b4614cbe
commit ddf68c1e6a
3 files changed
+236 -126

No files matched your search

@@ -698,7 +698,11 @@ private class JdbcBookFileRepository(private val connection: Connection) : BookF
LEFT JOIN books b ON b.id = f.book_id
WHERE f.duplicate_of_file_id IS NULL
ORDER BY
CASE WHEN f.reading_status = 'READING' THEN 0 ELSE 1 END,
CASE
WHEN f.reading_status = 'READING' THEN 0
WHEN f.reading_status = 'NOT_INTERESTED' THEN 2
ELSE 1
END,
CASE WHEN f.reading_status = 'READING' THEN f.last_read_at END DESC NULLS LAST,
LOWER(COALESCE(NULLIF(b.title, ''), NULLIF(f.original_filename, ''), f.id)),
f.id
@@ -158,8 +158,8 @@ class H2LibraryDatabaseTest {
}
@Test
fun listsReadingBooksFirstThenSortsByTitle() {
val db = H2LibraryDatabase.openMemory("listsReadingBooksFirstThenSortsByTitle")
fun listsReadingBooksFirstNotInterestedLastThenSortsByTitle() {
val db = H2LibraryDatabase.openMemory("listsReadingBooksFirstNotInterestedLastThenSortsByTitle")
val now = 1_700_000_000_000L
db.transaction {
@@ -168,6 +168,7 @@ class H2LibraryDatabaseTest {
Triple("book-alpha", "Alpha", BookReadingStatus.READ),
Triple("book-gamma", "Gamma", BookReadingStatus.READING),
Triple("book-aardvark", "Aardvark", BookReadingStatus.READING),
Triple("book-omega", "Omega", BookReadingStatus.NOT_INTERESTED),
).forEachIndexed { index, (bookId, title, status) ->
books.upsert(
BookRecord(
@@ -194,7 +195,7 @@ class H2LibraryDatabaseTest {
}
assertEquals(
listOf("Aardvark", "Gamma", "Alpha", "Beta"),
listOf("Aardvark", "Gamma", "Alpha", "Beta", "Omega"),
db.files.listLibraryFiles().map { it.title },
)
db.close()