<?php
/**
 * config/mail.php — Helper de envío de formularios al correo institucional.
 * Usa mail() de PHP. Asegúrate de configurar php.ini (SMTP) en producción.
 */

if (!defined('AV_MAIL_TO')) {
    define('AV_MAIL_TO', 'notificaciones@serviciosDEMO-igualdad.com');
}

/**
 * Envía un correo con los datos de un formulario.
 *
 * @param string $subject  Asunto / encabezado.
 * @param array  $fields   ['Etiqueta' => 'valor', ...]
 * @param array  $files    Estructura $_FILES['evidencias'] (opcional, multifile o single).
 * @return array ['ok' => bool, 'msg' => string]
 */
function av_send_form(string $subject, array $fields, array $files = []): array
{
    $to       = AV_MAIL_TO;
    $boundary = 'demo_' . md5(uniqid('', true));
    $from     = 'no-reply@serviciosDEMO-igualdad.com';

    $replyTo = '';
    if (!empty($fields['Correo electrónico']) && filter_var($fields['Correo electrónico'], FILTER_VALIDATE_EMAIL)) {
        $replyTo = $fields['Correo electrónico'];
    }

    $headers   = [];
    $headers[] = 'MIME-Version: 1.0';
    $headers[] = 'From: Servicios DEMO Igualdad <' . $from . '>';
    if ($replyTo) {
        $headers[] = 'Reply-To: ' . $replyTo;
    }
    $headers[] = 'Content-Type: multipart/mixed; boundary="' . $boundary . '"';

    // Cuerpo HTML
    $html = '<h2 style="color:#4146A6;font-family:Arial">' . htmlspecialchars($subject) . '</h2>';
    $html .= '<p style="font-family:Arial;color:#555">Recibido el ' . date('d/m/Y H:i:s') . '</p>';
    $html .= '<table cellpadding="6" cellspacing="0" border="0" style="border-collapse:collapse;font-family:Arial;font-size:14px">';
    foreach ($fields as $label => $value) {
        $html .= '<tr>'
              . '<td style="background:#f5f6fb;border:1px solid #ddd;font-weight:bold;vertical-align:top">' . htmlspecialchars($label) . '</td>'
              . '<td style="border:1px solid #ddd">' . nl2br(htmlspecialchars((string)$value)) . '</td>'
              . '</tr>';
    }
    $html .= '</table>';

    $body  = "--$boundary\r\n";
    $body .= "Content-Type: text/html; charset=UTF-8\r\n";
    $body .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    $body .= $html . "\r\n";

    // Adjuntar archivos (si existen)
    if (!empty($files['name'])) {
        $names    = is_array($files['name']) ? $files['name']        : [$files['name']];
        $tmps     = is_array($files['tmp_name']) ? $files['tmp_name'] : [$files['tmp_name']];
        $errors   = is_array($files['error']) ? $files['error']      : [$files['error']];
        $types    = is_array($files['type']) ? $files['type']        : [$files['type']];

        foreach ($names as $i => $name) {
            if (empty($name) || $errors[$i] !== UPLOAD_ERR_OK || !is_uploaded_file($tmps[$i])) continue;
            $content = chunk_split(base64_encode(file_get_contents($tmps[$i])));
            $type    = $types[$i] ?: 'application/octet-stream';
            $safeName = preg_replace('/[^\w\.\- ]/', '_', $name);
            $body .= "--$boundary\r\n";
            $body .= "Content-Type: $type; name=\"$safeName\"\r\n";
            $body .= "Content-Disposition: attachment; filename=\"$safeName\"\r\n";
            $body .= "Content-Transfer-Encoding: base64\r\n\r\n";
            $body .= $content . "\r\n";
        }
    }
    $body .= "--$boundary--";

    $ok = @mail($to, '=?UTF-8?B?' . base64_encode($subject) . '?=', $body, implode("\r\n", $headers), '-f' . $from);

    if ($ok) {
        return ['ok' => true, 'msg' => '✅ Tu mensaje fue enviado correctamente. Gracias por contactarnos.'];
    }
    return ['ok' => false, 'msg' => '⚠️ No se pudo enviar el mensaje en este momento. Por favor intenta más tarde o utiliza el correo institucional indicado.'];
}