From b074a4901c630ee5c5f7dcff79fa6ff911a14ded Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 31 Dec 2025 14:19:22 +0900 Subject: feat(schema): make note_id and is_reversed NOT NULL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All cards now require note association - legacy card support removed. This aligns with the note-based card architecture introduced in Phase 8. - Add database migration for NOT NULL constraints - Update client Dexie schema to version 3 - Remove LegacyCardItem component and legacy card handling - Update sync schemas and type definitions - Update all tests to use note-based cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/db/index.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/client/db/index.ts') diff --git a/src/client/db/index.ts b/src/client/db/index.ts index 5318b17..53df476 100644 --- a/src/client/db/index.ts +++ b/src/client/db/index.ts @@ -122,8 +122,8 @@ export interface LocalNoteFieldValue { export interface LocalCard { id: string; deckId: string; - noteId: string | null; - isReversed: boolean | null; + noteId: string; + isReversed: boolean; front: string; back: string; @@ -241,6 +241,18 @@ export class KiokuDatabase extends Dexie { } }); }); + + // Version 3: noteId and isReversed are now required (NOT NULL) + // No migration needed as production has no legacy data without notes + this.version(3).stores({ + decks: "id, userId, updatedAt", + cards: "id, deckId, noteId, updatedAt, due, state", + reviewLogs: "id, cardId, userId, reviewedAt", + noteTypes: "id, userId, updatedAt", + noteFieldTypes: "id, noteTypeId, updatedAt", + notes: "id, deckId, noteTypeId, updatedAt", + noteFieldValues: "id, noteId, noteFieldTypeId, updatedAt", + }); } } -- cgit v1.2.3-70-g09d2