refactor: 移除冗餘UserLevel/WordLevel欄位,實現純CEFR標準架構
- 執行資料庫遷移移除flashcards表的UserLevel和WordLevel冗餘欄位 - 更新Flashcard模型移除數值屬性定義 - 清理FlashcardsController和SpacedRepetitionService中的數值欄位邏輯 - 更新前端接口移除數值欄位映射,改用純CEFR字符串 - 消除資料重複問題:users.english_level不再與UserLevel重複 - 消除資料重複問題:flashcards.difficulty_level不再與WordLevel重複 - 系統現使用即時CEFR轉換,性能優異且符合國際標準 - 徹底解決技術債務,實現純淨的CEFR標準化架構 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
d19fa34556
commit
db16e58fb6
|
|
@ -13,8 +13,6 @@ import { calculateCurrentMastery, getReviewTypesByDifficulty } from '@/lib/utils
|
|||
|
||||
// 擴展的Flashcard接口,包含智能複習需要的欄位
|
||||
interface ExtendedFlashcard extends Omit<Flashcard, 'nextReviewDate'> {
|
||||
userLevel?: number; // 學習者程度數值 (從CEFR轉換)
|
||||
wordLevel?: number; // 詞彙難度數值 (從CEFR轉換)
|
||||
nextReviewDate?: string; // 下次復習日期 (可選)
|
||||
currentInterval?: number; // 當前間隔天數
|
||||
isOverdue?: boolean; // 是否逾期
|
||||
|
|
@ -23,6 +21,7 @@ interface ExtendedFlashcard extends Omit<Flashcard, 'nextReviewDate'> {
|
|||
lastReviewDate?: string; // 最後復習日期
|
||||
synonyms?: string[]; // 同義詞
|
||||
exampleImage?: string; // 例句圖片
|
||||
// 注意:userLevel和wordLevel已移除,改用即時CEFR轉換
|
||||
}
|
||||
|
||||
export default function LearnPage() {
|
||||
|
|
|
|||
|
|
@ -210,9 +210,7 @@ class FlashcardsService {
|
|||
difficultyLevel: card.difficultyLevel || 'A2',
|
||||
createdAt: card.createdAt,
|
||||
updatedAt: card.updatedAt,
|
||||
// 智能複習擴展欄位
|
||||
userLevel: card.userLevel || 50,
|
||||
wordLevel: card.wordLevel || 50,
|
||||
// 智能複習擴展欄位 (數值欄位已移除,改用即時CEFR轉換)
|
||||
baseMasteryLevel: card.baseMasteryLevel || card.masteryLevel || 0,
|
||||
lastReviewDate: card.lastReviewDate || card.lastReviewedAt,
|
||||
currentInterval: card.currentInterval || card.intervalDays || 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue