<?php

namespace App\Console\Commands\Debug;

use Illuminate\Console\Command;

use App\Models\{Echomail,Netmail};
use App\Models\Address;

class PacketAddress extends Command
{
	/**
	 * The name and signature of the console command.
	 *
	 * @var string
	 */
	protected $signature = 'debug:packet:address'
		.' {ftn : FTN Address}'
		.' {type : Message Type}'
		.' {dbid : Message ID}';

	/**
	 * The console command description.
	 *
	 * @var string
	 */
	protected $description = 'Generate a mail packet for a system';

	/**
	 * Execute the console command.
	 *
	 * @return int
	 * @throws \Exception
	 */
	public function handle(): int
	{
		$ao = Address::findFTN($this->argument('ftn'));

		switch ($this->argument('type')) {
			case 'echomail':
				$o = new Echomail;
				break;

			case 'netmail':
				$o = new Netmail;
				break;

			default:
				$this->error('Unknown type: '.$this->argument('type'));
				exit(1);
		}

		echo hex_dump($ao
			->system
			->packet($ao)
			->mail($o->where('id',$this->argument('dbid'))->get())
			->generate()
		);

		return self::SUCCESS;
	}
}