<?php
session_start();
include_once '../config/database.php';

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

if (!isset($_SESSION['user'])) {
    echo json_encode(['success' => false, 'message' => 'No autorizado']);
    exit();
}

$database = new Database();
$conn = $database->getConnection();

if (!isset($_POST['codpreguntas']) || empty($_POST['codpreguntas'])) {
    echo json_encode(['success' => false, 'message' => 'ID de pregunta no proporcionado']);
    exit();
}

try {
    $codpreguntas = intval($_POST['codpreguntas']);
    $alternativas = isset($_POST['alternativas']) ? json_decode($_POST['alternativas'], true) : [];
    
    if (!is_array($alternativas)) {
        $alternativas = [];
    }
    
    // Convertir a enteros
    $alternativas = array_map('intval', $alternativas);
    
    $conn->beginTransaction();
    
    // Eliminar todas las alternativas actuales de esta pregunta
    $stmt_delete = $conn->prepare("DELETE FROM tdetpreg_alterna WHERE codpreguntas = ?");
    $stmt_delete->execute([$codpreguntas]);
    
    // Insertar las nuevas alternativas seleccionadas
    if (!empty($alternativas)) {
        $stmt_insert = $conn->prepare("INSERT INTO tdetpreg_alterna (codpreguntas, codalternativas, orden) VALUES (?, ?, NULL)");
        foreach ($alternativas as $codalternativas) {
            $stmt_insert->execute([$codpreguntas, $codalternativas]);
        }
    }
    
    $conn->commit();
    
    echo json_encode([
        'success' => true,
        'message' => 'Alternativas guardadas correctamente',
        'total' => count($alternativas)
    ]);
} catch(PDOException $e) {
    $conn->rollBack();
    echo json_encode(['success' => false, 'message' => 'Error: ' . $e->getMessage()]);
} catch(Exception $e) {
    $conn->rollBack();
    echo json_encode(['success' => false, 'message' => 'Error: ' . $e->getMessage()]);
}
?>

