<?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['codencuesta']) || empty($_POST['codencuesta'])) {
    echo json_encode(['success' => false, 'message' => 'ID de encuesta no proporcionado']);
    exit();
}

try {
    $codencuesta = intval($_POST['codencuesta']);
    $ordenes = isset($_POST['ordenes']) ? json_decode($_POST['ordenes'], true) : [];
    
    if (!is_array($ordenes) || empty($ordenes)) {
        echo json_encode(['success' => false, 'message' => 'No se proporcionaron órdenes']);
        exit();
    }
    
    $conn->beginTransaction();
    
    // Actualizar el orden de cada pregunta
    $stmt_update = $conn->prepare("UPDATE tdet_encu_pregu SET orden = ? WHERE codencuesta = ? AND codpreguntas = ?");
    
    $actualizados = 0;
    foreach ($ordenes as $orden_data) {
        $codpreguntas = intval($orden_data['codpreguntas']);
        $orden = intval($orden_data['orden']);
        
        // Verificar que la relación existe
        $stmt_verificar = $conn->prepare("SELECT COUNT(*) FROM tdet_encu_pregu WHERE codencuesta = ? AND codpreguntas = ?");
        $stmt_verificar->execute([$codencuesta, $codpreguntas]);
        $existe = $stmt_verificar->fetchColumn();
        
        if ($existe > 0) {
            $stmt_update->execute([$orden, $codencuesta, $codpreguntas]);
            $actualizados++;
        }
    }
    
    $conn->commit();
    
    echo json_encode([
        'success' => true,
        'message' => 'Orden guardado correctamente',
        'total' => $actualizados
    ]);
} 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()]);
}
?>

