CREATE TABLE IF NOT EXISTS progress ( user_id TEXT NOT NULL REFERENCES users(id), topic_id TEXT NOT NULL, lesson_id TEXT NOT NULL, completed INTEGER NOT NULL DEFAULT 0, best_score INTEGER NOT NULL DEFAULT 0, completed_at TEXT, PRIMARY KEY (user_id, topic_id, lesson_id) ); CREATE TABLE IF NOT EXISTS user_stats ( user_id TEXT PRIMARY KEY REFERENCES users(id), xp INTEGER NOT NULL DEFAULT 0, streak_days INTEGER NOT NULL DEFAULT 0, last_active_date TEXT, hearts INTEGER NOT NULL DEFAULT 5 );