feat(lessons): implement comprehensive lesson configurator, session runner and AI debrief (Beta)
This commit is contained in:
1 parent
31e105b2c2
commit
718e9797eb
12 files changed
+4093
-1
No files matched your search
@@ -385,6 +385,40 @@ def _migrate(conn: sqlite3.Connection):
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_bg_tasks_user_status ON background_tasks(user_id, status);")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_bg_tasks_status ON background_tasks(status);")
|
||||
|
||||
# Ensure lesson_presets and lesson_sessions tables exist (Lesson Configurator & Runner)
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS lesson_presets (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
icon TEXT DEFAULT '🚀',
|
||||
description TEXT DEFAULT '',
|
||||
estimated_min INTEGER DEFAULT 15,
|
||||
config_json TEXT NOT NULL,
|
||||
is_default INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
""")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_lesson_presets_user ON lesson_presets(user_id);")
|
||||
|
||||
conn.execute("""
|
||||
CREATE TABLE IF NOT EXISTS lesson_sessions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
preset_name TEXT NOT NULL,
|
||||
duration_seconds INTEGER DEFAULT 0,
|
||||
total_score INTEGER DEFAULT 0,
|
||||
grade TEXT DEFAULT 'A',
|
||||
steps_summary_json TEXT NOT NULL,
|
||||
errors_json TEXT NOT NULL,
|
||||
ai_report_json TEXT NOT NULL,
|
||||
completed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
""")
|
||||
conn.execute("CREATE INDEX IF NOT EXISTS idx_lesson_sess_user_date ON lesson_sessions(user_id, completed_at DESC);")
|
||||
|
||||
# Repair legacy cards with placeholder blanks or mismatched context
|
||||
repair_mismatched_cefr_contexts(conn)
|
||||
|
||||
|
||||
Reference in new issue
Block a user