diff options
Diffstat (limited to 'src/client/sync/scheduler.ts')
| -rw-r--r-- | src/client/sync/scheduler.ts | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/client/sync/scheduler.ts b/src/client/sync/scheduler.ts index 72a6e25..9c8572a 100644 --- a/src/client/sync/scheduler.ts +++ b/src/client/sync/scheduler.ts @@ -88,68 +88,3 @@ export async function undoReviewLocal(params: { await localReviewLogRepository.delete(params.reviewLogId); await syncQueue.notifyChanged(); } - -/** - * Server-shaped study card. Includes all FSRS fields needed to reconstruct - * a LocalCard so we can submit reviews offline. - */ -export interface ServerStudyCard { - id: string; - deckId: string; - noteId: string; - isReversed: boolean; - front: string; - back: string; - state: number; - due: string; - stability: number; - difficulty: number; - elapsedDays: number; - scheduledDays: number; - reps: number; - lapses: number; - lastReview: string | null; - createdAt: string; - updatedAt: string; - deletedAt: string | null; - syncVersion: number; -} - -/** - * Cache study cards into IndexedDB so the scheduler can submit reviews - * even when the network drops mid-session. Only cards are cached here — - * note types / fields / values come through the regular sync pull. - */ -export async function cacheStudyCards(cards: ServerStudyCard[]): Promise<void> { - for (const c of cards) { - const local: LocalCard = { - id: c.id, - deckId: c.deckId, - noteId: c.noteId, - isReversed: c.isReversed, - front: c.front, - back: c.back, - state: c.state as LocalCard["state"], - due: new Date(c.due), - stability: c.stability, - difficulty: c.difficulty, - elapsedDays: c.elapsedDays, - scheduledDays: c.scheduledDays, - reps: c.reps, - lapses: c.lapses, - lastReview: c.lastReview ? new Date(c.lastReview) : null, - createdAt: new Date(c.createdAt), - updatedAt: new Date(c.updatedAt), - deletedAt: c.deletedAt ? new Date(c.deletedAt) : null, - syncVersion: c.syncVersion, - _synced: true, - }; - - // Don't clobber pending local edits (e.g., a review that hasn't - // been pushed yet). If the local copy has unsynced changes, skip. - const existing = await localCardRepository.findById(c.id); - if (existing && !existing._synced) continue; - - await localCardRepository.upsertFromServer(local); - } -} |
