<?php
// modules/auxiliar/send_email_handler.php

require_once '../../includes/auth.php';
require_once '../../includes/database.php';
require_once '../../includes/send_email.php';
requireRole('auxiliar');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Validar token CSRF
    if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        $_SESSION['error'] = 'Token de seguridad inválido';
        header('Location: correos.php');
        exit;
    }

    $to = $_POST['to'] ?? '';
    $subject = $_POST['subject'] ?? '';
    $message = $_POST['message'] ?? '';
    $attachments = $_FILES['attachment'] ?? [];
    $estudiantes = $_POST['estudiantes'] ?? [];

    // Validación básica
    if (empty($to) || empty($subject) || empty($message)) {
        $_SESSION['error'] = 'Todos los campos son obligatorios';
        header('Location: correos.php');
        exit;
    }

    // Obtener nombre del auxiliar para la firma
    $auxiliarNombre = $_SESSION['user_name'] ?? 'Auxiliar';
    
    // Agregar firma personalizada al mensaje
    $messageHTML = nl2br($message);
    $messageHTML .= "<br><br>";
    $messageHTML .= "<div style='border-top: 1px solid #eaeaea; padding-top: 15px; margin-top: 20px; color: #666; font-size: 14px;'>";
    $messageHTML .= "<strong>Enviado por:</strong> {$auxiliarNombre}<br>";
    $messageHTML .= "<strong>Rol:</strong> Auxiliar<br>";
    $messageHTML .= "<strong>Colegio:</strong> " . APP_NAME;
    $messageHTML .= "</div>";

    // Procesar adjuntos
    $files = [];
    if (!empty($attachments['name'][0])) {
        $fileCount = count($attachments['name']);
        for ($i = 0; $i < $fileCount; $i++) {
            if ($attachments['error'][$i] === UPLOAD_ERR_OK) {
                $files[] = [
                    'tmp_name' => $attachments['tmp_name'][$i],
                    'name' => $attachments['name'][$i]
                ];
            }
        }
    }

    // Enviar correo a cada destinatario
    $successCount = 0;
    $failedEmails = [];
    $emails = explode(',', $to);
    
    foreach ($emails as $email) {
        $email = trim($email);
        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            if (sendEmail($email, $subject, $messageHTML, true, $files, $auxiliarNombre)) {
                $successCount++;
            } else {
                $failedEmails[] = $email;
                error_log("Error enviando a $email: " . print_r(error_get_last(), true));
            }
        }
    }

    // Registrar en base de datos
    global $db;
    $db->insert('correos_enviados', [
        'asunto' => $subject,
        'mensaje' => $messageHTML,
        'destinatarios' => $to,
        'adjuntos' => count($files),
        'enviado_por' => $_SESSION['user_id'],
        'fecha_envio' => date('Y-m-d H:i:s'),
        'estado' => $successCount > 0 ? 'enviado' : 'fallido'
    ]);
    $correoId = $db->lastInsertId();

    // Crear notificaciones para cada estudiante
    // Crear notificaciones para cada estudiante
foreach ($emails as $email) {
    $email = trim($email);
    $usuario = $db->fetchOne("SELECT u.id 
                             FROM usuarios u
                             JOIN estudiantes e ON u.id = e.usuario_id
                             WHERE u.email = ?", [$email]);

    if ($usuario && isset($usuario['id'])) {
        $db->insert('notificaciones', [
            'usuario_id' => $usuario['id'],
            'titulo' => "Nuevo mensaje recibido",
            'mensaje' => "Tienes un nuevo correo de $auxiliarNombre: \"$subject\"",
            'tipo' => 'general',
            'fecha_envio' => date('Y-m-d H:i:s'),
            'leida' => 0,
            'enlace' => "ver_correo.php?correo_id=$correoId" // CORRECCIÓN CLAVE
        ]);
    }
}

    // Mensaje de resultado
    if ($successCount > 0) {
        $_SESSION['success'] = "Correo enviado a $successCount destinatario(s)";
        
        if (!empty($failedEmails)) {
            $_SESSION['warning'] = 'Algunos correos no se enviaron: ' . implode(', ', $failedEmails);
        }
    } else {
        $_SESSION['error'] = 'Error al enviar el correo a todos los destinatarios';
    }
    
    header('Location: correos.php');
    exit;
}