<?php
// obtener_historial_reversiones.php

// Iniciar buffer de salida
ob_start();

// Errores (quitar en producción)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// CORS y Headers
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json; charset=utf-8");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }

// Conexión
require_once(__DIR__ . '/../config.php');
 $mysqli->set_charset("utf8mb4");

// JSON
 $input = json_decode(file_get_contents('php://input'), true);
if (!$input) { 
    echo json_encode(['success'=>false,'message'=>'JSON inválido']); 
    exit; 
}

// --- VALIDACIÓN DE PARÁMETROS ---
 $slug_tienda = isset($input['slug_tienda']) ? trim($input['slug_tienda']) : '';
 $credito_id = isset($input['credito_id']) ? (int)$input['credito_id'] : 0;

if (!$slug_tienda || !$credito_id) {
    echo json_encode(['success' => false, 'message' => 'Faltan parámetros para obtener el historial.']);
    exit;
}

// Inicializar la variable de respuesta
 $response = [];

try {
    $stmt = $mysqli->prepare("SELECT * FROM reversiones_abonos WHERE credito_id = ? AND slug_tienda = ? ORDER BY fecha_reversion DESC");
    $stmt->bind_param("is", $credito_id, $slug_tienda);
    $stmt->execute();
    $reversiones = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt->close();

    // Asignar la respuesta exitosa a la variable
    $response = ['success' => true, 'reversiones' => $reversiones];

} catch (Exception $e) {
    http_response_code(500);
    // Asignar la respuesta de error a la variable
    $response = ['success' => false, 'message' => $e->getMessage()];
} finally {
    if (isset($mysqli) && $mysqli) { 
        $mysqli->close(); 
    }
}

// Lógica de depuración final
 $php_output = ob_get_clean();

// 1. Verificar si hubo salida no deseada (errores, advertencias, espacios)
if (!empty($php_output)) {
    // Si la hay, significa que hubo un error de PHP o un espacio en blanco.
    // Devolvemos un error JSON que incluya esa salida para que el frontend la muestre.
    http_response_code(500); // Internal Server Error
    echo json_encode([
        'success' => false,
        'message' => 'Error de PHP inesperado. Salida no deseada detectada.',
        'php_output' => $php_output // Aquí está el error real
    ]);
} else {
    // 2. Si no hubo salida no deseada, imprimimos la respuesta JSON normal.
    echo json_encode($response);
}
?>