feat(ios): tab tabanlı navigasyon ve okuma durumu takibi ekle
This commit is contained in:
@@ -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) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user