import Foundation import SwiftData /// Offline-Grade in der lokalen Queue. Wird beim Reconnect der Reihe nach /// an `POST /reviews/:cardId/:subIndex/grade` gesendet — mit dem /// **originalen** `reviewedAt`-Timestamp, damit der Server-FSRS /// korrekt rechnet. @Model final class PendingGrade { @Attribute(.unique) var id: String var cardId: String var subIndex: Int var ratingRaw: String var reviewedAt: Date var queuedAt: Date var lastTryAt: Date? var lastError: String? init(cardId: String, subIndex: Int, rating: Rating, reviewedAt: Date) { id = "\(cardId)-\(subIndex)-\(reviewedAt.timeIntervalSince1970)" self.cardId = cardId self.subIndex = subIndex ratingRaw = rating.rawValue self.reviewedAt = reviewedAt queuedAt = .now } var rating: Rating? { Rating(rawValue: ratingRaw) } }