<?php
// ? Errores (quitar en produccion)
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; }

// ? Conexion
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 invalido']); 
    exit; 
}

// --- VALIDACION DE PARAMETROS ---
 $slug_tienda = isset($input['slug_tienda']) ? trim($input['slug_tienda']) : '';
 $historial_id = isset($input['historial_id']) ? (int)$input['historial_id'] : 0;

if (!$slug_tienda || !$historial_id) {
    echo json_encode(['success' => false, 'message' => 'Parametros invalidos o incompletos.']);
    exit;
}

try {
    // 1. Obtener el encabezado de la factura anulada
    $stmt_factura = $mysqli->prepare("
        SELECT * FROM historial_facturas_anuladas 
        WHERE id = ? AND slug_tienda = ?
    ");
    $stmt_factura->bind_param("is", $historial_id, $slug_tienda);
    $stmt_factura->execute();
    $factura_anulada = $stmt_factura->get_result()->fetch_assoc();
    $stmt_factura->close();

    if (!$factura_anulada) {
        throw new Exception("Registro de factura anulada no encontrado.");
    }

    // 2. Obtener los detalles de la factura
    $stmt_detalles = $mysqli->prepare("
        SELECT * FROM historial_facturas_anuladas_detalles 
        WHERE historial_factura_anulada_id = ?
    ");
    $stmt_detalles->bind_param("i", $historial_id);
    $stmt_detalles->execute();
    $detalles = $stmt_detalles->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt_detalles->close();

    echo json_encode([
        'success' => true, 
        'factura_anulada' => $factura_anulada,
        'detalles' => $detalles
    ]);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success'=>false,'message'=>$e->getMessage()]);
} finally {
    if (isset($mysqli) && $mysqli) { $mysqli->close(); }
}
?>