diff options
| author | Claude <noreply@anthropic.com> | 2026-02-08 11:29:22 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-02-08 11:29:22 +0000 |
| commit | 6d53e63d9f3fd81125d0f61e9701ecd262318875 (patch) | |
| tree | 0f068896360b01e19e787b4e23da912c4e3518ee /src/server/routes/decks.ts | |
| parent | e17c87441d9beff9c1241cbe3ba71c402a7c0c3f (diff) | |
| download | kioku-6d53e63d9f3fd81125d0f61e9701ecd262318875.tar.gz kioku-6d53e63d9f3fd81125d0f61e9701ecd262318875.tar.zst kioku-6d53e63d9f3fd81125d0f61e9701ecd262318875.zip | |
fix(deck): change review card limit to 80 and simplify deck detail stats
Review card limit is reduced from 100 to 80 across deck list, deck detail,
and study routes. Deck detail page now shows only total card count and due
card count (with budget limits applied), matching the deck list and study
screen numbers.
https://claude.ai/code/session_01NAj4waQhwSSXV9EbgioX2j
Diffstat (limited to 'src/server/routes/decks.ts')
| -rw-r--r-- | src/server/routes/decks.ts | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/routes/decks.ts b/src/server/routes/decks.ts index 6a24c66..d73aa0c 100644 --- a/src/server/routes/decks.ts +++ b/src/server/routes/decks.ts @@ -22,7 +22,7 @@ const deckIdParamSchema = z.object({ id: z.uuid(), }); -const REVIEW_CARDS_LIMIT = 100; +const REVIEW_CARDS_LIMIT = 80; export function createDecksRouter(deps: DeckDependencies) { const { deckRepo, cardRepo, reviewLogRepo } = deps; @@ -82,7 +82,21 @@ export function createDecksRouter(deps: DeckDependencies) { throw Errors.notFound("Deck not found", "DECK_NOT_FOUND"); } - return c.json({ deck }, 200); + const now = new Date(); + const [dueNewCards, dueReviewCards, reviewedNewCards] = await Promise.all( + [ + cardRepo.countDueNewCards(deck.id, now), + cardRepo.countDueReviewCards(deck.id, now), + reviewLogRepo.countTodayNewCardReviews(deck.id, now), + ], + ); + + const newCardBudget = Math.max(0, deck.newCardsPerDay - reviewedNewCards); + const newCardsToStudy = Math.min(dueNewCards, newCardBudget); + const reviewCardsToStudy = Math.min(dueReviewCards, REVIEW_CARDS_LIMIT); + const dueCardCount = newCardsToStudy + reviewCardsToStudy; + + return c.json({ deck: { ...deck, dueCardCount } }, 200); }) .put( "/:id", |
