<?php

namespace App\Services;

use App\Mail\ApplicationStatusMail;
use App\Models\Professional;
use Illuminate\Support\Facades\Mail;

class ApplicationStatusEmailService
{
    public function send(Professional $professional, string $status): void
    {
        $professional->loadMissing('user.profile');

        $email = $professional->user?->email;
        $name = $professional->user?->profile?->first_name
            ?: $professional->user?->profile?->full_name
            ?: 'Professional';

        if (! $email) {
            throw new \RuntimeException('The professional application has no recipient email address.');
        }

        Mail::to($email, $name)->send(new ApplicationStatusMail($status, $name));
    }
}
