<?php

namespace App\Mail;

use App\Repositories\ReportRepository;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class CarpetReport extends Mailable
{
    use Queueable, SerializesModels;

    private $report_id, $organisation_id, $token;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($_report_id, $_organisation_id, $_token)
    {
        $this->report_id = $_report_id;
        $this->organisation_id = $_organisation_id;
        $this->token = $_token;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        // Get extra details to enrich the report

        $rr = new ReportRepository();

        $report = $rr->getReportCarpet($this->report_id, $this->organisation_id);

        return $this->view('mail.html.report-carpet')
            ->subject('Attack against '. $report['summary']['destination_parent'] .'/24 - Report')
            ->with([
                'destination' => $report['summary']['destination_parent'] . '/24',
                'url' => url("api/guest/report/download/$this->token") 
            ]);
    }
}
