<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

use App\Jobs\NodelistImport as Job;
use App\Models\File;

class NodelistImport extends Command
{
	/**
	 * The name and signature of the console command.
	 *
	 * @var string
	 */
	protected $signature = 'nodelist:import'
		.' {file : File ID | filename}'
		.' {domain? : Domain Name}'
		.' {--I|ignorecrc : Ignore the CRC}'
		.' {--D|delete : Delete old data for the date}'
		.' {--U|unlink : Delete file after import}'
		.' {--T|test : Dry run}';

	/**
	 * The console command description.
	 *
	 * @var string
	 */
	protected $description = 'Import Nodelist';

	/**
	 * Execute the console command.
	 *
	 * @return int
	 */
	public function handle():int
	{
		return Job::dispatchSync(
			is_numeric($x=$this->argument('file'))
				? File::findOrFail($x)
				: sprintf('%s/%s',config('fido.dir'),$this->argument('file')),
			$this->argument('domain'),
			$this->option('delete'),
			$this->option('unlink'),
			$this->option('test'),
			$this->option('ignorecrc'),
		);
	}
}