prefix . 'ai_content_by_parallax_batch_requests'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, batch_request_id VARCHAR(64) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'processing', type VARCHAR(21) NOT NULL, total_expected INT DEFAULT 0, batches_done INT DEFAULT 0, metadata LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY batch_request_id (batch_request_id), KEY idx_status (status), KEY idx_created_at (created_at), KEY idx_type_status_created (type, status, created_at) ) $charset_collate;"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $sql ); update_option( self::VERSION_OPTION, self::SCHEMA_VERSION ); } /** * Run install() only when the stored schema version is behind the current * one. Safe to call on every request — no-ops when already up to date. * * @return void */ public static function maybe_upgrade(): void { if ( get_option( self::VERSION_OPTION ) !== self::SCHEMA_VERSION ) { self::install(); } } }