<?php 
// VERSIÓN CON SOPORTE DE IMÁGENES - RUTAS CORREGIDAS
session_start();

error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: application/json');

error_log("=== INICIO obtener_preguntasM2.php (CON IMÁGENES) ===");

try {
    require 'conexion.php';
    
    if ($conn === null) {
        error_log("ERROR: Conexión a base de datos es null");
        echo json_encode(['error' => 'Error de conexión a base de datos']);
        exit;
    }
    
    if (!$conn->ping()) {
        error_log("ERROR: Conexión a base de datos perdida");
        echo json_encode(['error' => 'Conexión a base de datos perdida']);
        exit;
    }
    
    error_log("SESSION usuario: " . ($_SESSION['usuario'] ?? 'NO_SET'));
    error_log("SESSION tipo_acceso: " . ($_SESSION['tipo_acceso'] ?? 'NO_SET'));
    error_log("GET materia_id: " . ($_GET['materia_id'] ?? 'NO_SET'));
    
    if (!isset($_SESSION['usuario']) || !isset($_SESSION['tipo_acceso'])) {
        error_log("ERROR: Variables de sesión no configuradas");
        echo json_encode(['error' => 'No autorizado - sesión no válida']);
        exit;
    }
    
    $materia_id = $_GET['materia_id'] ?? '';
    $tipo_acceso = $_SESSION['tipo_acceso'];
    
    if (empty($materia_id)) {
        error_log("ERROR: materia_id está vacío");
        echo json_encode(['error' => 'Materia no especificada']);
        exit;
    }
    
    $materia_id = trim($materia_id);
    $tipo_acceso = trim($tipo_acceso);
    
    error_log("Procesando materia_id: '$materia_id', tipo_acceso: '$tipo_acceso'");
    
    // ✅ CONSULTA ACTUALIZADA: Incluye campos de imágenes
    $sql = "SELECT 
                p.Id, 
                p.pregunta, 
                p.imagen_pregunta,
                p.pregunta_a, 
                p.imagen_pregunta_a,
                p.pregunta_b, 
                p.imagen_pregunta_b,
                p.opcion1, 
                p.opcion2, 
                p.opcion3, 
                p.opcion4, 
                p.opcion5, 
                p.correcta_rpta, 
                p.detalle_rpta 
            FROM Preguntas p 
            JOIN Materias m ON p.materia_id = m.cod_materia 
            WHERE p.materia_id = ? AND m.acceso_id = ? 
            ORDER BY p.Id ASC";
    
    error_log("Preparando consulta SQL");
    
    $stmt = $conn->prepare($sql);
    
    if (!$stmt) {
        error_log("ERROR preparando consulta: " . $conn->error);
        echo json_encode(['error' => 'Error en la preparación de consulta: ' . $conn->error]);
        exit;
    }
    
    if (!$stmt->bind_param("ss", $materia_id, $tipo_acceso)) {
        error_log("ERROR en bind_param: " . $stmt->error);
        echo json_encode(['error' => 'Error en bind_param: ' . $stmt->error]);
        exit;
    }
    
    if (!$stmt->execute()) {
        error_log("ERROR ejecutando consulta: " . $stmt->error);
        echo json_encode(['error' => 'Error ejecutando consulta: ' . $stmt->error]);
        exit;
    }
    
    $result = $stmt->get_result();
    
    if (!$result) {
        error_log("ERROR obteniendo resultados: " . $stmt->error);
        echo json_encode(['error' => 'Error obteniendo resultados: ' . $stmt->error]);
        exit;
    }
    
    $preguntas = [];
    while ($row = $result->fetch_assoc()) {
        // ✅ ESTRUCTURA ACTUALIZADA: Asegurar que NULL se convierta en cadena vacía
        $pregunta_procesada = [
            'Id' => $row['Id'],
            'pregunta' => $row['pregunta'] ?? '',
            'imagen_pregunta' => $row['imagen_pregunta'] ? trim($row['imagen_pregunta']) : '', // ✅ CORREGIDO
            'pregunta_a' => $row['pregunta_a'] ?? '',
            'imagen_pregunta_a' => $row['imagen_pregunta_a'] ? trim($row['imagen_pregunta_a']) : '', // ✅ CORREGIDO
            'pregunta_b' => $row['pregunta_b'] ?? '',
            'imagen_pregunta_b' => $row['imagen_pregunta_b'] ? trim($row['imagen_pregunta_b']) : '', // ✅ CORREGIDO
            'opcion1' => $row['opcion1'] ?? '',
            'opcion2' => $row['opcion2'] ?? '',
            'opcion3' => $row['opcion3'] ?? '',
            'opcion4' => $row['opcion4'] ?? '',
            'opcion5' => $row['opcion5'] ?? '',
            'correcta_rpta' => $row['correcta_rpta'],
            'detalle_rpta' => $row['detalle_rpta'] ?? ''
        ];
        
        // ✅ LOG PARA DEBUGGING: Mostrar si la pregunta tiene imágenes
        if ($pregunta_procesada['imagen_pregunta']) {
            error_log("Pregunta ID {$row['Id']} tiene imagen principal: {$pregunta_procesada['imagen_pregunta']}");
        }
        if ($pregunta_procesada['imagen_pregunta_a']) {
            error_log("Pregunta ID {$row['Id']} tiene imagen A: {$pregunta_procesada['imagen_pregunta_a']}");
        }
        if ($pregunta_procesada['imagen_pregunta_b']) {
            error_log("Pregunta ID {$row['Id']} tiene imagen B: {$pregunta_procesada['imagen_pregunta_b']}");
        }
        
        $preguntas[] = $pregunta_procesada;
    }
    
    $total_preguntas = count($preguntas);
    error_log("Consulta exitosa. Preguntas encontradas: $total_preguntas");
    
    if ($total_preguntas === 0) {
        error_log("ADVERTENCIA: No se encontraron preguntas para materia_id='$materia_id' y tipo_acceso='$tipo_acceso'");
    } else {
        error_log("Primera pregunta ID: " . $preguntas[0]['Id']);
    }
    
    $stmt->close();
    
    echo json_encode($preguntas);
    
    error_log("=== FIN EXITOSO obtener_preguntasM2.php ===");
    
} catch (Exception $e) {
    error_log("EXCEPCIÓN en obtener_preguntasM2.php: " . $e->getMessage());
    error_log("Stack trace: " . $e->getTraceAsString());
    echo json_encode(['error' => 'Error interno: ' . $e->getMessage()]);
} catch (Error $e) {
    error_log("ERROR FATAL en obtener_preguntasM2.php: " . $e->getMessage());
    error_log("Stack trace: " . $e->getTraceAsString());
    echo json_encode(['error' => 'Error fatal: ' . $e->getMessage()]);
}

if (isset($conn) && $conn !== null) {
    $conn->close();
}
?>