<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

use App\Models\Address;

class PacketSystem extends Command
{
	/**
	 * The name and signature of the console command.
	 *
	 * @var string
	 */
	protected $signature = 'packet:system'
		.' {ftn : System address}';

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

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

		foreach ($ao->system->addresses->where('validated',TRUE) as $o) {
			$pkt = $o->getEchomail();
			$this->info(sprintf('System address [%s] has [%d] echomail messages.',$o->ftn,$pkt?->count()));

			if ($pkt) {
				foreach ($pkt as $msg)
					$this->warn(sprintf('- %s (%s)',$msg->msgid,$msg->id));
			}

			$pkt = $o->getNetmail();
			$this->info(sprintf('System address [%s] has [%d] netmail messages.',$o->ftn,$pkt?->count()));

			if ($pkt) {
				foreach ($pkt as $msg)
					$this->warn(sprintf('- %s (%s)',$msg->msgid,$msg->id));
			}
		}

		return self::SUCCESS;
	}
}