<?php

namespace App\Mail;

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

class activeUser extends Mailable implements ShouldQueue
{
    use Queueable;
    use SerializesModels;

    protected $id; // 邮件记录ID
    protected $activeUserUrl; // 激活用户URL

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

    public function build(): activeUser
    {
        return $this->view('emails.activeUser')->subject('激活账号')->with(['activeUserUrl' => $this->activeUserUrl]);
    }

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