refactor: 完全重构为 Anki 兼容数据结构
- 用 Deck 替换 Folder - 用 Note + Card 替换 Pair (双向复习) - 添加 NoteType (卡片模板) - 添加 Revlog (复习历史) - 实现 SM-2 间隔重复算法 - 更新所有前端页面 - 添加数据库迁移
This commit is contained in:
104
src/modules/card/card-repository-dto.ts
Normal file
104
src/modules/card/card-repository-dto.ts
Normal file
@@ -0,0 +1,104 @@
|
||||
import { CardType, CardQueue } from "../../../generated/prisma/enums";
|
||||
|
||||
export interface RepoInputCreateCard {
|
||||
id: bigint;
|
||||
noteId: bigint;
|
||||
deckId: number;
|
||||
ord: number;
|
||||
due: number;
|
||||
type?: CardType;
|
||||
queue?: CardQueue;
|
||||
ivl?: number;
|
||||
factor?: number;
|
||||
reps?: number;
|
||||
lapses?: number;
|
||||
left?: number;
|
||||
odue?: number;
|
||||
odid?: number;
|
||||
flags?: number;
|
||||
data?: string;
|
||||
}
|
||||
|
||||
export interface RepoInputUpdateCard {
|
||||
ord?: number;
|
||||
mod?: number;
|
||||
usn?: number;
|
||||
type?: CardType;
|
||||
queue?: CardQueue;
|
||||
due?: number;
|
||||
ivl?: number;
|
||||
factor?: number;
|
||||
reps?: number;
|
||||
lapses?: number;
|
||||
left?: number;
|
||||
odue?: number;
|
||||
odid?: number;
|
||||
flags?: number;
|
||||
data?: string;
|
||||
}
|
||||
|
||||
export interface RepoInputGetCardsByDeckId {
|
||||
deckId: number;
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
queue?: CardQueue | CardQueue[];
|
||||
}
|
||||
|
||||
export interface RepoInputGetCardsForReview {
|
||||
deckId: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
||||
export interface RepoInputGetNewCards {
|
||||
deckId: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
||||
export interface RepoInputBulkUpdateCard {
|
||||
id: bigint;
|
||||
data: RepoInputUpdateCard;
|
||||
}
|
||||
|
||||
export interface RepoInputBulkUpdateCards {
|
||||
cards: RepoInputBulkUpdateCard[];
|
||||
}
|
||||
|
||||
export type RepoOutputCard = {
|
||||
id: bigint;
|
||||
noteId: bigint;
|
||||
deckId: number;
|
||||
ord: number;
|
||||
mod: number;
|
||||
usn: number;
|
||||
type: CardType;
|
||||
queue: CardQueue;
|
||||
due: number;
|
||||
ivl: number;
|
||||
factor: number;
|
||||
reps: number;
|
||||
lapses: number;
|
||||
left: number;
|
||||
odue: number;
|
||||
odid: number;
|
||||
flags: number;
|
||||
data: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
};
|
||||
|
||||
export type RepoOutputCardWithNote = RepoOutputCard & {
|
||||
note: {
|
||||
id: bigint;
|
||||
flds: string;
|
||||
sfld: string;
|
||||
tags: string;
|
||||
};
|
||||
};
|
||||
|
||||
export type RepoOutputCardStats = {
|
||||
total: number;
|
||||
new: number;
|
||||
learning: number;
|
||||
review: number;
|
||||
due: number;
|
||||
};
|
||||
Reference in New Issue
Block a user