<?php

namespace Modules\Auth\Emails;

use App\Notifications\Concerns\BuildsMailMessage;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class EmailVerificationOtpEmail extends Notification
{
    use BuildsMailMessage;
    use Queueable;

    public function __construct(
        protected string $otp
    ) {}

    public function via(object $notifiable): array
    {
        return ['mail'];
    }

    public function toMail(object $notifiable): MailMessage
    {
        $minutes = (int) config('auth.email_verification.expiry_minutes', 10);

        return $this->mailMessage(
            subject: 'Pengesahan E-mel - Kod OTP',
            view: 'auth::emails.verification-otp',
            data: [
                'name' => $notifiable->name,
                'otp' => $this->otp,
                'minutes' => $minutes,
            ],
        );
    }
}
