<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class ApplicationStatusMail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(public string $status, public string $recipientName) {}

    public function envelope(): Envelope
    {
        return new Envelope(subject: match ($this->status) {
            'approved' => 'Application Approved | DESXPERT',
            'declined' => 'Application Declined | DESXPERT',
        });
    }

    public function content(): Content
    {
        return new Content(
            view: match ($this->status) {
                'approved' => 'emails.professional-approved',
                'declined' => 'emails.professional-declined',
            },
            with: ['name' => $this->recipientName],
        );
    }
}
