diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-25 23:02:35 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-25 23:02:35 +0900 |
| commit | 38b8fc0e9927c4146b4c8b309b2bcc644abd63d0 (patch) | |
| tree | f76ba23251645e552fccd201362064b06de50bdd /src/server/repositories | |
| parent | 7a77e72bb49ed3990a0c4581292a37a8a4f35231 (diff) | |
| download | kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.tar.gz kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.tar.zst kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.zip | |
Allow each deck to specify a default note type that is auto-selected
when creating new notes. Includes DB schema migration, server API
updates, sync layer support, and UI for editing the default in the
deck settings modal.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/server/repositories')
| -rw-r--r-- | src/server/repositories/deck.test.ts | 1 | ||||
| -rw-r--r-- | src/server/repositories/deck.ts | 3 | ||||
| -rw-r--r-- | src/server/repositories/sync.test.ts | 1 | ||||
| -rw-r--r-- | src/server/repositories/sync.ts | 3 | ||||
| -rw-r--r-- | src/server/repositories/types.ts | 3 |
5 files changed, 11 insertions, 0 deletions
diff --git a/src/server/repositories/deck.test.ts b/src/server/repositories/deck.test.ts index ab6e2fc..93fdce7 100644 --- a/src/server/repositories/deck.test.ts +++ b/src/server/repositories/deck.test.ts @@ -7,6 +7,7 @@ function createMockDeck(overrides: Partial<Deck> = {}): Deck { userId: "user-uuid-123", name: "Test Deck", description: null, + defaultNoteTypeId: null, createdAt: new Date("2024-01-01"), updatedAt: new Date("2024-01-01"), deletedAt: null, diff --git a/src/server/repositories/deck.ts b/src/server/repositories/deck.ts index 97af5f7..66dd9c5 100644 --- a/src/server/repositories/deck.ts +++ b/src/server/repositories/deck.ts @@ -31,6 +31,7 @@ export const deckRepository: DeckRepository = { userId: string; name: string; description?: string | null; + defaultNoteTypeId?: string | null; }): Promise<Deck> { const [deck] = await db .insert(decks) @@ -38,6 +39,7 @@ export const deckRepository: DeckRepository = { userId: data.userId, name: data.name, description: data.description ?? null, + defaultNoteTypeId: data.defaultNoteTypeId ?? null, }) .returning(); if (!deck) { @@ -52,6 +54,7 @@ export const deckRepository: DeckRepository = { data: { name?: string; description?: string | null; + defaultNoteTypeId?: string | null; }, ): Promise<Deck | undefined> { const result = await db diff --git a/src/server/repositories/sync.test.ts b/src/server/repositories/sync.test.ts index 8425839..6f02440 100644 --- a/src/server/repositories/sync.test.ts +++ b/src/server/repositories/sync.test.ts @@ -16,6 +16,7 @@ function createMockDeck(overrides: Partial<Deck> = {}): Deck { userId: "user-uuid-123", name: "Test Deck", description: null, + defaultNoteTypeId: null, createdAt: new Date("2024-01-01"), updatedAt: new Date("2024-01-01"), deletedAt: null, diff --git a/src/server/repositories/sync.ts b/src/server/repositories/sync.ts index e197d37..d321de4 100644 --- a/src/server/repositories/sync.ts +++ b/src/server/repositories/sync.ts @@ -53,6 +53,7 @@ export interface SyncDeckData { id: string; name: string; description: string | null; + defaultNoteTypeId: string | null; createdAt: string; updatedAt: string; deletedAt: string | null; @@ -223,6 +224,7 @@ export const syncRepository: SyncRepository = { userId, name: deckData.name, description: deckData.description, + defaultNoteTypeId: deckData.defaultNoteTypeId, createdAt: new Date(deckData.createdAt), updatedAt: clientUpdatedAt, deletedAt: deckData.deletedAt ? new Date(deckData.deletedAt) : null, @@ -246,6 +248,7 @@ export const syncRepository: SyncRepository = { .set({ name: deckData.name, description: deckData.description, + defaultNoteTypeId: deckData.defaultNoteTypeId, updatedAt: clientUpdatedAt, deletedAt: deckData.deletedAt ? new Date(deckData.deletedAt) diff --git a/src/server/repositories/types.ts b/src/server/repositories/types.ts index 7e0819a..eb9141a 100644 --- a/src/server/repositories/types.ts +++ b/src/server/repositories/types.ts @@ -50,6 +50,7 @@ export interface Deck { userId: string; name: string; description: string | null; + defaultNoteTypeId: string | null; createdAt: Date; updatedAt: Date; deletedAt: Date | null; @@ -63,6 +64,7 @@ export interface DeckRepository { userId: string; name: string; description?: string | null; + defaultNoteTypeId?: string | null; }): Promise<Deck>; update( id: string, @@ -70,6 +72,7 @@ export interface DeckRepository { data: { name?: string; description?: string | null; + defaultNoteTypeId?: string | null; }, ): Promise<Deck | undefined>; softDelete(id: string, userId: string): Promise<boolean>; |
