<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once __DIR__ . '/src/Exception.php';
require_once __DIR__ . '/src/PHPMailer.php';
require_once __DIR__ . '/src/SMTP.php';
require_once __DIR__ . '/mail_environment.php';

// ✅ Función reutilizable para configurar SMTP
function configurarSMTP(PHPMailer $mail) {
    $mail->CharSet = 'UTF-8';
    $mail->Encoding = 'base64';

    // Configuración SMTP
    $mail->isSMTP();
    $mail->Host       = 'mail.rocasamexico.com';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'informatica@rocasamexico.com';
    $mail->Password   = '&jSr_agd~CR_';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port       = 465;
}

// 📩 Función para enviar correo de referencias
function enviarCorreoReferencia($attuid, $nombreReclutador, $nombreAspirante, $fechaEnvio) {
    $mail = new PHPMailer(true);

    try {
        configurarSMTP($mail); // Se aplica configuración SMTP estandarizada

        // Remitente
        $mail->setFrom('informatica@rocasamexico.com', 'Intranet Rocasa');

        // Destinatario fijo
        $mail->addAddress('recursoshumanos@rocasamexico.com'); /* ecaballeros@rocasamexico.com */

        // Copia oculta
        $mail->addBCC('msaldivarc@rocasamexico.com');

        // Asunto
        $mail->Subject = 'Solicitud de envío a referencias';

        // Cuerpo del mensaje
        $mail->isHTML(true);
        $mail->Body = "
            <h4>Se ha enviado un nuevo aspirante a referencias</h4>
            <p><strong>Reclutador:</strong> {$nombreReclutador} ({$attuid})</p>
            <p><strong>Aspirante:</strong> {$nombreAspirante}</p>
            <p><strong>Fecha:</strong> {$fechaEnvio}</p>
            <p>Acceda al panel de revisión en <a href='https://rocasamexico.com/Intranet/login.php'>intraRoca</a></p>
        ";

        aplicarModoDesarrolloMail($mail);
        $mail->send();
        return ['status' => 'success', 'message' => 'Correo enviado correctamente.'];
    } catch (Exception $e) {
        return ['status' => 'error', 'message' => "No se pudo enviar el correo. Error: {$mail->ErrorInfo}"];
    }
}
