<?php
declare(strict_types=1);
require_once dirname(__FILE__) . '/../config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    jsonErr(405, 'Metodo no permitido.');
}

// Solo valida que el token sea válido (usuario autenticado), sin verificar propietario
$jwt = auth();
$db  = getDB();

$id_tx = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if ($id_tx <= 0) {
    jsonErr(400, 'ID de transaccion requerido.');
}

try {
    // Obtener productos de pedido_real de la transacción de asignación
    $stmt = $db->prepare(
        'SELECT id_prod, cant FROM pedido_real WHERE transacciones = ?'
    );
    $stmt->execute([$id_tx]);
    $items = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $pedido = [];
    foreach ($items as $item) {
        $id_prod  = (int)$item['id_prod'];
        $cantidad = (int)$item['cant'];

        if ($id_prod < 1000) {
            $sp = $db->prepare(
                'SELECT nombreProd AS nombre, puntos FROM productos WHERE id_prod = ?'
            );
        } else {
            $sp = $db->prepare(
                'SELECT promodesc AS nombre, puntos FROM promod WHERE id_promo = ?'
            );
        }
        $sp->execute([$id_prod]);
        $prod = $sp->fetch(PDO::FETCH_ASSOC);

        $pedido[] = [
            'nombre' => $prod['nombre'] ?? 'Producto',
            'cant'   => $cantidad,
            'puntos' => (int)($prod['puntos'] ?? 0),
        ];
    }

    jsonOk(['pedido' => $pedido]);

} catch (Throwable $e) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'message' => 'Error interno: ' . $e->getMessage(),
    ], JSON_UNESCAPED_UNICODE);
    exit;
}
