<?php

namespace Sphere\Debloat\WpCli;
use Sphere\Debloat\Admin\Cache;

/**
 * Commands for WPCLI 
 */
class Commands extends \WP_CLI_Command {

	/**
	 * Flush the Debloat cache.
	 *
	 * [--network]
	 *      Flush CSS Cache for all the sites in the network.
	 *
	 * ## EXAMPLES
	 *
	 *  1. wp debloat empty-cache
	 *      - Delete all the cached content.
	 *
	 *  2. wp debloat empty-cache --network
	 *      - Delete all the cached content including all transients for sites in a network.
	 *
	 * @since 2.1.0
	 * @access public
	 * @alias empty-cache
	 */
	public function empty_cache($args, $assoc_args) 
	{
		$network = !empty($assoc_args['network']) && is_multisite();
		$cache   = new Cache;

		if ($network) {
			/** @var \WP_Site[] $blogs */
			$blogs = get_sites();

			foreach ($blogs as $key => $blog) {
				$blog_id = $blog->blog_id;
				switch_to_blog($blog_id);

				$cache->empty();

				\WP_CLI::success('Emptied debloat cache for site - ' . get_option('home'));

				restore_current_blog();
			}

			return;
		}

		$cache->empty();
		\WP_CLI::success('Emptied all debloat cache.');
	}
}