{"table_name":"afw_sessions","full_table_name":"wp_afw_sessions","description":"Stores session data for tracking user or visitor state.","detection_method":"static","confidence":"medium","create_sql":"CREATE TABLE IF NOT EXISTS wp_afw_sessions ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(64) NOT NULL, user_id BIGINT UNSIGNED DEFAULT NULL, context VARCHAR(20) NOT NULL DEFAULT 'customer', metadata LONGTEXT, started_at DATETIME NOT NULL, last_activity DATETIME NOT NULL, INDEX idx_session_id (session_id), INDEX idx_user (user_id), INDEX idx_context (context) ) {$charset_collate};\"; // Messages table. $sql[] = \"CREATE TABLE IF NOT EXISTS wp_afw_messages ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(36) NOT NULL, role VARCHAR(20) NOT NULL, content LONGTEXT NOT NULL, context VARCHAR(20) NOT NULL DEFAULT 'customer', tokens_used INT UNSIGNED DEFAULT 0, abilities_called LONGTEXT, created_at DATETIME NOT NULL, INDEX idx_session (session_id), INDEX idx_created (created_at) ) {$charset_collate};\"; // Actions audit log table. $sql[] = \"CREATE TABLE IF NOT EXISTS wp_afw_actions ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, session_id BIGINT UNSIGNED DEFAULT NULL, user_id BIGINT UNSIGNED NOT NULL, ability VARCHAR(100) NOT NULL, input_params LONGTEXT, result LONGTEXT, status ENUM('success', 'failed', 'pending', 'cancelled') NOT NULL DEFAULT 'pending', executed_at DATETIME NOT NULL, INDEX idx_user (user_id), INDEX idx_ability (ability), INDEX idx_status (status), INDEX idx_executed (executed_at) ) {$charset_collate};\"; // Knowledge base table. $sql[] = \"CREATE TABLE IF NOT EXISTS wp_afw_knowledge ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, type ENUM('faq', 'policy', 'product_info', 'custom') NOT NULL DEFAULT 'custom', title VARCHAR(255) NOT NULL, content LONGTEXT NOT NULL, embedding LONGBLOB, metadata LONGTEXT, is_active TINYINT(1) DEFAULT 1, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX idx_type (type), INDEX idx_active (is_active) ) {$charset_collate};\"; // Health snapshots table. $sql[] = \"CREATE TABLE IF NOT EXISTS wp_afw_health_snapshots ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, overall_score INT UNSIGNED NOT NULL, category_scores LONGTEXT NOT NULL, issues LONGTEXT, recommendations LONGTEXT, created_at DATETIME NOT NULL, INDEX idx_created (created_at) ) {$charset_collate};\"; // Audit log table. $sql[] = \"CREATE TABLE IF NOT EXISTS wp_afw_audit_log ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, user_id BIGINT UNSIGNED NOT NULL, user_type VARCHAR(20) NOT NULL DEFAULT 'admin', action_type VARCHAR(100) NOT NULL, action_category VARCHAR(50) NOT NULL, description TEXT NOT NULL, ability_id VARCHAR(100) DEFAULT NULL, parameters LONGTEXT DEFAULT NULL, result LONGTEXT DEFAULT NULL, status VARCHAR(20) NOT NULL DEFAULT 'success', ip_address VARCHAR(100) DEFAULT NULL, session_id VARCHAR(64) DEFAULT NULL, object_type VARCHAR(50) DEFAULT NULL, object_id BIGINT UNSIGNED DEFAULT NULL, created_at DATETIME NOT NULL, INDEX idx_user_id (user_id), INDEX idx_action_type (action_type), INDEX idx_action_category (action_category), INDEX idx_status (status), INDEX idx_created_at (created_at), INDEX idx_object (object_type, object_id) ) {$charset_collate};\"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; foreach ( $sql as $query ) { dbDelta( $query );","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":true},{"name":"session_id","type":"VARCHAR(64)","nullable":false,"primary_key":false},{"name":"user_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"context","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"metadata","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"started_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"last_activity","type":"DATETIME","nullable":false,"primary_key":false},{"name":"session_id","type":"VARCHAR(36)","nullable":false,"primary_key":false},{"name":"role","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"content","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"context","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"tokens_used","type":"INT UNSIGNED","nullable":true,"primary_key":false},{"name":"abilities_called","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"session_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"user_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"ability","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"input_params","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"result","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"status","type":"ENUM('success', 'failed', 'pending', 'cancelled')","nullable":false,"primary_key":false},{"name":"executed_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"type","type":"ENUM('faq', 'policy', 'product_info', 'custom')","nullable":false,"primary_key":false},{"name":"title","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"content","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"embedding","type":"LONGBLOB","nullable":true,"primary_key":false},{"name":"metadata","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"is_active","type":"TINYINT(1)","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"overall_score","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"category_scores","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"issues","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"recommendations","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"user_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"user_type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"action_type","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"action_category","type":"VARCHAR(50)","nullable":false,"primary_key":false},{"name":"description","type":"TEXT","nullable":false,"primary_key":false},{"name":"ability_id","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"parameters","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"result","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"status","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"ip_address","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"session_id","type":"VARCHAR(64)","nullable":true,"primary_key":false},{"name":"object_type","type":"VARCHAR(50)","nullable":true,"primary_key":false},{"name":"object_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false}],"plugin":{"slug":"assistify-for-woocommerce","name":"Assistify for WooCommerce","active_installs":0,"version":"1.1.0","wp_org_url":"https://wordpress.org/plugins/assistify-for-woocommerce/"}}