CREATE INDEX idx_project_tags_tag_id ON project_tags(tag_id); CREATE INDEX idx_releases_project_active_created_at ON releases(project_id, is_active, created_at DESC); CREATE INDEX idx_releases_uploaded_by_user_id ON releases(uploaded_by_user_id); CREATE INDEX idx_api_keys_scope_mode_active ON api_keys(scope_mode, is_active); CREATE INDEX idx_api_key_project_access_project_id ON api_key_project_access(project_id); CREATE INDEX idx_api_key_tag_access_tag_id ON api_key_tag_access(tag_id); CREATE INDEX idx_sessions_user_id ON sessions(user_id); CREATE INDEX idx_sessions_expires_at ON sessions(expires_at); CREATE INDEX idx_audit_logs_created_at ON audit_logs(created_at); CREATE INDEX idx_audit_logs_actor_user_id ON audit_logs(actor_user_id); CREATE INDEX idx_audit_logs_api_key_id ON audit_logs(api_key_id); CREATE TRIGGER users_touch_updated_at AFTER UPDATE ON users FOR EACH ROW WHEN NEW.updated_at = OLD.updated_at BEGIN UPDATE users SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id; END; CREATE TRIGGER projects_touch_updated_at AFTER UPDATE ON projects FOR EACH ROW WHEN NEW.updated_at = OLD.updated_at BEGIN UPDATE projects SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id; END; CREATE TRIGGER tags_touch_updated_at AFTER UPDATE ON tags FOR EACH ROW WHEN NEW.updated_at = OLD.updated_at BEGIN UPDATE tags SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id; END; CREATE TRIGGER releases_touch_updated_at AFTER UPDATE ON releases FOR EACH ROW WHEN NEW.updated_at = OLD.updated_at BEGIN UPDATE releases SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id; END; CREATE TRIGGER api_keys_touch_updated_at AFTER UPDATE ON api_keys FOR EACH ROW WHEN NEW.updated_at = OLD.updated_at BEGIN UPDATE api_keys SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id; END;