<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\ModelNotFoundException;

use App\Jobs\BroadbandTraffic as Job;
use App\Models\Supplier;

class BroadbandTraffic extends Command
{
	/**
	 * The name and signature of the console command.
	 *
	 * @var string
	 */
	protected $signature = 'broadband:traffic:import'.
		' {supplier? : Supplier Name}';

	/**
	 * The console command description.
	 *
	 * @var string
	 */
	protected $description = 'Import Broadband Traffic from Suppliers';

	/**
	 * Execute the console command.
	 *
	 * @return mixed
	 */
	public function handle()
	{
		if ($this->argument('supplier')) {
			try {
				$o = Supplier::active()
					->where('name','ilike',$this->argument('supplier'))
					->sole();

			} catch (ModelNotFoundException $e) {
				$this->error(sprintf('Supplier [%s] not found',$this->argument('supplier')));

				return self::FAILURE;
			}

			Job::dispatchSync($o->name);

			return self::SUCCESS;
		}

		foreach (Supplier::active()->get() as $o)
			Job::dispatchSync($o->name);

		return self::SUCCESS;
	}
}