<?php

namespace App\Mail;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class NotificacaoMail extends Mailable
{
    use Queueable, SerializesModels;

    private $user, $mensagem;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(User $user, $mensagem)
    {
        $this->user = $user;
        $this->mensagem = $mensagem;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        switch ($this->mensagem) {
            case 'novaSolicitacao':
                $this->novaSolicitcao();
                break;

            case 'novaSolicitacaoFuncionario':
                $this->novaSolicitcaoFuncionario();
                break;
            case 'recebemosSolicitacao':
                $this->recebemosSolicitcao();
                break;
            case 'solicitacaoRespondida':
                $this->solicitacaoRespondida();
                break;

            default:
                # code...
                break;
        }

    }

    public function novaSolicitcao(){
        $this->subject("Nova solicitção");
        $this->to($this->user->email, $this->user->name);
        return $this->markdown('mail.novaSolicitacao', ['user' => $this->user]);
    }

    public function novaSolicitcaoFuncionario(){
        $this->subject("Nova solicitação");
        $this->to($this->user->email, $this->user->name);
        return $this->markdown('mail.novaSolicitacaoFuncionario', ['user' => $this->user]);
    }

    public function recebemosSolicitcao(){
        $this->subject("Recebemos sua solicitação");
        $this->to($this->user->email, $this->user->name);
        return $this->markdown('mail.recebemosSolicitacao', ['user' => $this->user]);
    }

    public function solicitacaoRespondida(){
        $this->subject("Sua solicitação foi respondida");
        $this->to($this->user->email, $this->user->name);
        return $this->markdown('mail.solicitacaoRespondida', ['user' => $this->user]);
    }
}
