<?php

namespace App\Mail;

use App\Http\Models\NotificationLog;
use Exception;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class newTicket extends Mailable implements ShouldQueue {
	use Queueable, SerializesModels;

	protected $id; // 邮件记录ID
	protected $title; // 工单标题
	protected $content; // 工单内容

	public function __construct($id, $title, $content) {
		$this->id = $id;
		$this->title = $title;
		$this->content = $content;
	}

	public function build() {
		return $this->view('emails.newTicket')->subject('新工单提醒')->with([
			                                                               'title'   => $this->title,
			                                                               'content' => $this->content
		                                                               ]);
	}

	// 发件失败处理
	public function failed(Exception $e) {
		NotificationLog::query()->whereId($this->id)->update(['status' => -1, 'error' => $e->getMessage()]);
	}
}