CREATE TABLE IF NOT EXISTS migrations ( version INTEGER PRIMARY KEY, applied_at TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS module_categories ( id TEXT PRIMARY KEY, name TEXT NOT NULL UNIQUE COLLATE NOCASE, color TEXT, icon TEXT, sort_order INTEGER NOT NULL DEFAULT 0 ); CREATE TABLE IF NOT EXISTS modules ( id TEXT PRIMARY KEY, type TEXT NOT NULL, name TEXT NOT NULL, description TEXT NOT NULL DEFAULT '', category_id TEXT REFERENCES module_categories(id) ON DELETE SET NULL, tags TEXT NOT NULL DEFAULT '[]', is_favorite INTEGER NOT NULL DEFAULT 0, payload TEXT NOT NULL, version INTEGER NOT NULL DEFAULT 1, created_at TEXT NOT NULL, updated_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_modules_type ON modules(type); CREATE INDEX IF NOT EXISTS idx_modules_category ON modules(category_id); CREATE INDEX IF NOT EXISTS idx_modules_updated_at ON modules(updated_at DESC);