<?php
// modules/auxiliar/send_email_single_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') {
    $to = $_POST['to'] ?? '';
    $subject = $_POST['subject'] ?? '';
    $message = $_POST['message'] ?? '';
    $estudiante_id = $_POST['estudiante_id'] ?? null;

    // Validación básica
    if (empty($to) || empty($subject) || empty($message) || !$estudiante_id) {
        $_SESSION['error'] = 'Todos los campos son obligatorios';
        header("Location: correo_por_estudiante.php?estudiante_id=$estudiante_id");
        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>";

    // Enviar correo
    $success = false;
    $email = trim($to);
    
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $success = sendEmail($email, $subject, $messageHTML, true, [], $auxiliarNombre);
    }

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

// Obtener el ID del correo recién insertado (USANDO EL NUEVO MÉTODO)
$correoId = $db->lastInsertId();

// Obtener usuario_id del estudiante
$estudiante_info = $db->fetchOne("SELECT usuario_id FROM estudiantes WHERE id = ?", [$estudiante_id]);

if ($estudiante_info && isset($estudiante_info['usuario_id'])) {
    $usuario_id = $estudiante_info['usuario_id'];
    
    // Crear mensaje de notificación
    $titulo = "Nuevo mensaje recibido";
    $mensaje = "Tienes un nuevo correo de $auxiliarNombre: \"$subject\"";
    
    // Insertar notificación en la base de datos
    $db->insert('notificaciones', [
        'usuario_id' => $usuario_id,
        'titulo' => $titulo,
        'mensaje' => $mensaje,
        'tipo' => 'general',
        'fecha_envio' => date('Y-m-d H:i:s'),
        'leida' => 0,
        'enlace' => "ver_correo.php?correo_id=$correoId"
    ]);
} else {
    error_log("No se encontró usuario_id para estudiante_id: $estudiante_id");
}

    // Mensaje de resultado
    if ($success) {
        $_SESSION['success'] = "Correo enviado correctamente a $email";
    } else {
        $_SESSION['error'] = 'Error al enviar el correo';
    }
    
    // Redirigir de vuelta al formulario con el ID del estudiante
    header("Location: correo_por_estudiante.php?estudiante_id=$estudiante_id");
    exit;
}

// Si se accede directamente sin POST
$_SESSION['error'] = 'Acceso no autorizado';
header('Location: lista_alumnos.php');
exit;