aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/server/routes/decks.ts
diff options
context:
space:
mode:
authornsfisis <54318333+nsfisis@users.noreply.github.com>2026-02-08 21:24:08 +0900
committerGitHub <noreply@github.com>2026-02-08 21:24:08 +0900
commitc0d092b3bfef491d9aa02a4e7e8f503ea35e6420 (patch)
treeac2e447cc7a2e568187a414c241258adf009c1d5 /src/server/routes/decks.ts
parent5e7c3ad7ed8c287b538de97d4de3a4df87e9a100 (diff)
parent6d53e63d9f3fd81125d0f61e9701ecd262318875 (diff)
downloadkioku-c0d092b3bfef491d9aa02a4e7e8f503ea35e6420.tar.gz
kioku-c0d092b3bfef491d9aa02a4e7e8f503ea35e6420.tar.zst
kioku-c0d092b3bfef491d9aa02a4e7e8f503ea35e6420.zip
Merge pull request #13 from nsfisis/claude/clarify-deck-numbers-mg3d4
Simplify deck stats to show due card count from server
Diffstat (limited to 'src/server/routes/decks.ts')
-rw-r--r--src/server/routes/decks.ts18
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",