diff options
Diffstat (limited to 'src/server/repositories/card.ts')
| -rw-r--r-- | src/server/repositories/card.ts | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/server/repositories/card.ts b/src/server/repositories/card.ts index 761b317..ac03bc6 100644 --- a/src/server/repositories/card.ts +++ b/src/server/repositories/card.ts @@ -20,7 +20,8 @@ export const cardRepository: CardRepository = { const result = await db .select() .from(cards) - .where(and(eq(cards.deckId, deckId), isNull(cards.deletedAt))); + .where(and(eq(cards.deckId, deckId), isNull(cards.deletedAt))) + .orderBy(cards.createdAt); return result; }, @@ -73,7 +74,8 @@ export const cardRepository: CardRepository = { const result = await db .select() .from(cards) - .where(and(eq(cards.noteId, noteId), isNull(cards.deletedAt))); + .where(and(eq(cards.noteId, noteId), isNull(cards.deletedAt))) + .orderBy(cards.isReversed); return result; }, @@ -202,6 +204,20 @@ export const cardRepository: CardRepository = { return result; }, + async countDueCards(deckId: string, now: Date): Promise<number> { + const result = await db + .select({ count: sql<number>`count(*)::int` }) + .from(cards) + .where( + and( + eq(cards.deckId, deckId), + isNull(cards.deletedAt), + lte(cards.due, now), + ), + ); + return result[0]?.count ?? 0; + }, + async findDueCardsWithNoteData( deckId: string, now: Date, |
