{"table_name":"cd_plugin_changes","full_table_name":"wp_cd_plugin_changes","description":"Stores cd plugin changes data created by this plugin.","detection_method":"static","confidence":"high","create_sql":"CREATE TABLE IF NOT EXISTS wp_cd_plugin_changes ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, plugin_slug VARCHAR(255) NOT NULL, plugin_name VARCHAR(255) NOT NULL, action VARCHAR(50) NOT NULL, plugin_version VARCHAR(50) DEFAULT '', previous_version VARCHAR(50) DEFAULT '', changed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_changed_at (changed_at), KEY idx_plugin_slug (plugin_slug(100)) ) $collate;\", \"CREATE TABLE IF NOT EXISTS wp_cd_errors ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, error_type VARCHAR(50) NOT NULL, message TEXT NOT NULL, file VARCHAR(500) DEFAULT '', line INT(11) UNSIGNED DEFAULT 0, plugin_slug VARCHAR(255) DEFAULT '', plugin_name VARCHAR(255) DEFAULT '', occurred_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_occurred_at (occurred_at), KEY idx_plugin_slug (plugin_slug(100)) ) $collate;\", \"CREATE TABLE IF NOT EXISTS wp_cd_scans ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, scan_type VARCHAR(50) NOT NULL, result LONGTEXT NOT NULL, issues_found INT(11) UNSIGNED DEFAULT 0, scanned_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_scanned_at (scanned_at) ) $collate;\", // Phase 2: stored conflict detections. \"CREATE TABLE IF NOT EXISTS wp_cd_conflicts ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, plugin_slug VARCHAR(255) NOT NULL, plugin_name VARCHAR(255) NOT NULL, action VARCHAR(50) NOT NULL, changed_at DATETIME NOT NULL, error_count INT(11) UNSIGNED DEFAULT 0, confidence TINYINT(3) UNSIGNED DEFAULT 0, reason TEXT DEFAULT '', resolved TINYINT(1) NOT NULL DEFAULT 0, detected_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_detected_at (detected_at), KEY idx_plugin_slug (plugin_slug(100)) ) $collate;\", // Phase 3: AJAX / REST slow-call log. \"CREATE TABLE IF NOT EXISTS wp_cd_ajax_log ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, type VARCHAR(10) NOT NULL DEFAULT 'ajax', action VARCHAR(200) NOT NULL DEFAULT '', duration_ms INT(11) NOT NULL DEFAULT 0, status_code SMALLINT(6) NOT NULL DEFAULT 200, user_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY type_created (type, created_at) ) $collate;\", );","columns":[{"name":"id","type":"BIGINT(20)   UNSIGNED","nullable":false,"primary_key":true},{"name":"plugin_slug","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"plugin_name","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"action","type":"VARCHAR(50)","nullable":false,"primary_key":false},{"name":"plugin_version","type":"VARCHAR(50)","nullable":true,"primary_key":false},{"name":"previous_version","type":"VARCHAR(50)","nullable":true,"primary_key":false},{"name":"changed_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"error_type","type":"VARCHAR(50)","nullable":false,"primary_key":false},{"name":"message","type":"TEXT","nullable":false,"primary_key":false},{"name":"file","type":"VARCHAR(500)","nullable":true,"primary_key":false},{"name":"line","type":"INT(11)      UNSIGNED","nullable":true,"primary_key":false},{"name":"plugin_slug","type":"VARCHAR(255)","nullable":true,"primary_key":false},{"name":"plugin_name","type":"VARCHAR(255)","nullable":true,"primary_key":false},{"name":"occurred_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"scan_type","type":"VARCHAR(50)","nullable":false,"primary_key":false},{"name":"result","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"issues_found","type":"INT(11)     UNSIGNED","nullable":true,"primary_key":false},{"name":"scanned_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"plugin_slug","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"plugin_name","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"action","type":"VARCHAR(50)","nullable":false,"primary_key":false},{"name":"changed_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"error_count","type":"INT(11)      UNSIGNED","nullable":true,"primary_key":false},{"name":"confidence","type":"TINYINT(3)   UNSIGNED","nullable":true,"primary_key":false},{"name":"reason","type":"TEXT","nullable":true,"primary_key":false},{"name":"resolved","type":"TINYINT(1)","nullable":false,"primary_key":false},{"name":"detected_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"action","type":"VARCHAR(200)","nullable":false,"primary_key":false},{"name":"duration_ms","type":"INT(11)","nullable":false,"primary_key":false},{"name":"status_code","type":"SMALLINT(6)","nullable":false,"primary_key":false},{"name":"user_id","type":"BIGINT(20)   UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false}],"plugin":{"slug":"tahhan-conflict-detective","name":"Tahhan Conflict Detective","active_installs":0,"version":"2.6.1","wp_org_url":"https://wordpress.org/plugins/tahhan-conflict-detective/"}}