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接口,包含智能複習需要的欄位
|
// 擴展的Flashcard接口,包含智能複習需要的欄位
|
||||||
interface ExtendedFlashcard extends Omit<Flashcard, 'nextReviewDate'> {
|
interface ExtendedFlashcard extends Omit<Flashcard, 'nextReviewDate'> {
|
||||||
userLevel?: number; // 學習者程度數值 (從CEFR轉換)
|
|
||||||
wordLevel?: number; // 詞彙難度數值 (從CEFR轉換)
|
|
||||||
nextReviewDate?: string; // 下次復習日期 (可選)
|
nextReviewDate?: string; // 下次復習日期 (可選)
|
||||||
currentInterval?: number; // 當前間隔天數
|
currentInterval?: number; // 當前間隔天數
|
||||||
isOverdue?: boolean; // 是否逾期
|
isOverdue?: boolean; // 是否逾期
|
||||||
|
|
@ -23,6 +21,7 @@ interface ExtendedFlashcard extends Omit<Flashcard, 'nextReviewDate'> {
|
||||||
lastReviewDate?: string; // 最後復習日期
|
lastReviewDate?: string; // 最後復習日期
|
||||||
synonyms?: string[]; // 同義詞
|
synonyms?: string[]; // 同義詞
|
||||||
exampleImage?: string; // 例句圖片
|
exampleImage?: string; // 例句圖片
|
||||||
|
// 注意:userLevel和wordLevel已移除,改用即時CEFR轉換
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function LearnPage() {
|
export default function LearnPage() {
|
||||||
|
|
|
||||||
|
|
@ -210,9 +210,7 @@ class FlashcardsService {
|
||||||
difficultyLevel: card.difficultyLevel || 'A2',
|
difficultyLevel: card.difficultyLevel || 'A2',
|
||||||
createdAt: card.createdAt,
|
createdAt: card.createdAt,
|
||||||
updatedAt: card.updatedAt,
|
updatedAt: card.updatedAt,
|
||||||
// 智能複習擴展欄位
|
// 智能複習擴展欄位 (數值欄位已移除,改用即時CEFR轉換)
|
||||||
userLevel: card.userLevel || 50,
|
|
||||||
wordLevel: card.wordLevel || 50,
|
|
||||||
baseMasteryLevel: card.baseMasteryLevel || card.masteryLevel || 0,
|
baseMasteryLevel: card.baseMasteryLevel || card.masteryLevel || 0,
|
||||||
lastReviewDate: card.lastReviewDate || card.lastReviewedAt,
|
lastReviewDate: card.lastReviewDate || card.lastReviewedAt,
|
||||||
currentInterval: card.currentInterval || card.intervalDays || 1,
|
currentInterval: card.currentInterval || card.intervalDays || 1,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue