<?php
/**
 * Script de procesamiento simplificado para el formulario TRAUMA 2025
 */

// Iniciar sesión para mantener datos del usuario
session_start();

// Configuración básica
$response = [
    'success' => false,
    'message' => '',
    'data' => null
];

// Verificar si es una petición POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Recopilar datos del formulario
    $formData = [
        'language' => $_POST['language'] ?? '',
        'title' => $_POST['title'] ?? '',
        'category' => $_POST['category'] ?? '',
        'introduction' => $_POST['introduction'] ?? '',
        'methods' => $_POST['methods'] ?? '',
        'results' => $_POST['results'] ?? '',
        'conclusions' => $_POST['conclusions'] ?? '',
        'author_name' => $_POST['author_name'] ?? '',
        'author_email' => $_POST['author_email'] ?? '',
        'conflicts' => $_POST['conflicts'] ?? '',
        'terms_accepted' => isset($_POST['terms_accepted']) ? true : false,
        'submission_date' => date('Y-m-d H:i:s')
    ];
    
    // Validación básica
    $errors = [];
    
    // Validar campos requeridos
    $requiredFields = ['language', 'title', 'category', 'introduction', 'methods', 'results', 'conclusions', 'author_name', 'author_email'];
    foreach ($requiredFields as $field) {
        if (empty($formData[$field])) {
            $errors[] = "El campo " . str_replace('_', ' ', $field) . " es obligatorio.";
        }
    }
    
    // Validar email
    if (!empty($formData['author_email']) && !filter_var($formData['author_email'], FILTER_VALIDATE_EMAIL)) {
        $errors[] = "El correo electrónico no es válido.";
    }
    
    // Validar términos y condiciones
    if (!$formData['terms_accepted']) {
        $errors[] = "Debe aceptar los términos y condiciones.";
    }
    
    // Validar archivo
    if (isset($_FILES['file-upload']) && $_FILES['file-upload']['error'] === 0) {
        $fileName = $_FILES['file-upload']['name'];
        $fileSize = $_FILES['file-upload']['size'];
        $fileType = $_FILES['file-upload']['type'];
        $fileTmpName = $_FILES['file-upload']['tmp_name'];
        
        // Directorio para guardar archivos
        $uploadDir = 'uploads/';
        if (!is_dir($uploadDir)) {
            // Crear directorio si no existe
            mkdir($uploadDir, 0755, true);
        }
        
        // Crear nombre único para el archivo
        $fileNewName = uniqid() . '-' . $fileName;
        $destination = $uploadDir . $fileNewName;
        
        // Intentar mover el archivo
        if (move_uploaded_file($fileTmpName, $destination)) {
            $formData['file'] = $destination;
        } else {
            $errors[] = "Error al subir el archivo.";
        }
    } else {
        $errors[] = "Debe adjuntar un archivo.";
    }
    
    // Si no hay errores, procesar el envío
    if (empty($errors)) {
        // En un entorno de producción, aquí se guardarían los datos en una base de datos
        // Por ahora, simularemos un envío exitoso
        
        // Generar un ID único para el resumen
        $abstractId = 'TRAUMA25-' . strtoupper(substr(md5(time()), 0, 8));
        
        // Guardar datos en la sesión (solo para demostración)
        $_SESSION['abstract_data'] = $formData;
        $_SESSION['abstract_id'] = $abstractId;
        
        // Preparar respuesta exitosa
        $response = [
            'success' => true,
            'message' => '¡Resumen enviado con éxito!',
            'data' => [
                'abstract_id' => $abstractId,
                'submission_date' => $formData['submission_date']
            ]
        ];
        
        // En un entorno real, aquí se enviaría un correo electrónico de confirmación
    } else {
        // Si hay errores, devolver respuesta con errores
        $response = [
            'success' => false,
            'message' => 'Se encontraron errores en el formulario:',
            'data' => $errors
        ];
    }
}

// Devolver respuesta en formato JSON
header('Content-Type: application/json');
echo json_encode($response);