<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class NodeDailyReport extends Notification implements ShouldQueue
{
    use Queueable;

    private $content;

    public function __construct($nodes)
    {
        $content = '| '.trans('user.attribute.node').' | '.trans('notification.node.upload').' | '.trans('notification.node.download').' | '.trans('notification.node.total')." |\r\n| ------ | :------: | :------: | ------: |\r\n";
        foreach ($nodes as $node) {
            $content .= "| {$node['name']} | {$node['upload']} | {$node['download']} | {$node['total']} |\r\n";
        }
        $this->content = $content;
    }

    public function via($notifiable)
    {
        return sysConfig('node_daily_notification');
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject(__('Nodes Daily Report'))
            ->markdown('mail.node.dailyReport', ['content' => $this->content]);
    }

    public function toCustom($notifiable)
    {
        return [
            'title'   => __('Nodes Daily Report'),
            'content' => $this->content,
        ];
    }
}