feat(ios): tab tabanlı navigasyon ve okuma durumu takibi ekle

This commit is contained in:
2026-02-11 18:26:17 +03:00
parent 52212f015b
commit 362b9b7d1b
16 changed files with 976 additions and 442 deletions

View File

@@ -16,6 +16,9 @@ final class LibraryBook {
var language: String?
var sourceLocale: String?
var remotePayloadJson: String?
// Optional tutulur ki eski store'lar migration sırasında kırılmasın.
var statusRaw: String?
var readingProgress: Double?
init(
localId: UUID = UUID(),
@@ -30,7 +33,9 @@ final class LibraryBook {
dateAdded: Date = .now,
language: String? = nil,
sourceLocale: String? = nil,
remotePayloadJson: String? = nil
remotePayloadJson: String? = nil,
statusRaw: String = ReadingStatus.wantToRead.rawValue,
readingProgress: Double = 0
) {
self.localId = localId
self.title = title
@@ -45,6 +50,8 @@ final class LibraryBook {
self.language = language
self.sourceLocale = sourceLocale
self.remotePayloadJson = remotePayloadJson
self.statusRaw = statusRaw
self.readingProgress = min(max(readingProgress, 0), 1)
}
var authors: [String] {
@@ -60,4 +67,14 @@ final class LibraryBook {
.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
.filter { !$0.isEmpty }
}
var status: ReadingStatus {
get { ReadingStatus(rawValue: statusRaw ?? "") ?? .wantToRead }
set { statusRaw = newValue.rawValue }
}
var readingProgressValue: Double {
get { min(max(readingProgress ?? 0, 0), 1) }
set { readingProgress = min(max(newValue, 0), 1) }
}
}