<?php

namespace App\Mail\postulantes;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class PostulanteAdminMail extends Mailable
{
    use Queueable, SerializesModels;

    private $datos;
    private $archivoRuta;

    public function __construct($datos, $archivoRuta)
    {
        $this->datos = (object)$datos;
        $this->archivoRuta = $archivoRuta;
    }

    public function build()
    {
        $data = $this->datos;
        $archivoRuta = $this->archivoRuta;
        $route = config('app.url') . '/' . $archivoRuta;
        $filePath = storage_path('app/' . $archivoRuta); 
        $app_name = config('app.name');
        $nombre = $data->nombre;
        $apellido = $data->apellido;
        $correo = $data->email;
        $telefono = $data->telefono;

        $sender = config('parametros.email.sender');
        $enableBcc = config('parametros.general.enable_bcc');
        $bccEmail = config('parametros.email.bcc_email');
        $emailReply = config('parametros.email.email_reply');

        $asunto = "🧳 $app_name - Nuevo postulante - $nombre $apellido";

        $mail = $this->from($sender, "{$app_name} - {$nombre}")
            ->subject($asunto)
            ->replyTo($correo, "$nombre $apellido")
            ->view(
                'mail.postulantes.admin',
                compact(
                    'nombre',
                    'apellido',
                    'telefono',
                    'correo'
                )
            );

            if ($filePath) {
                $mail->attach($filePath, [
                    'as' => basename($archivoRuta), 
                    'mime' => mime_content_type($filePath)
                ]);
            }

        if ($enableBcc && $bccEmail) {
            $mail->bcc($bccEmail, config('app.name'));
        }

        return $mail;
    }
}
