<?php
/**
 * Panel simple para ver y administrar pedidos de PagoPar
 * Útil para debugging y pruebas
 */

require_once 'includes/db.php';

$db = new Database();

// Verificar si la tabla existe
try {
    $pedidos = $db->query("
        SELECT * FROM pedidos_pagopar 
        ORDER BY fecha_creacion DESC 
        LIMIT 20
    ")->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
    die("Error: La tabla pedidos_pagopar no existe. Ejecuta el script SQL primero: " . $e->getMessage());
}

// Crear un pedido de prueba si no hay ninguno
if (empty($pedidos)) {
    echo "<div class='alert alert-warning'>No hay pedidos en la base de datos. Creando pedido de prueba...</div>";
    
    $id_pedido_test = 'TEST-' . time() . '-' . rand(1000, 9999);
    $hash_test = sha1($id_pedido_test . time());
    
    try {
        $stmt = $db->prepare("
            INSERT INTO pedidos_pagopar 
            (id_pedido_comercio, hash_pagopar, monto_total, estado, datos_comprador, datos_productos, fecha_creacion, fecha_maxima_pago)
            VALUES (?, ?, ?, 'pendiente', ?, ?, NOW(), DATE_ADD(NOW(), INTERVAL 7 DAY))
        ");
        
        $datos_comprador = json_encode([
            'nombre' => 'Cliente de Prueba',
            'email' => 'test@example.com',
            'telefono' => '0981234567',
            'documento' => '12345678'
        ]);
        
        $datos_productos = json_encode([
            [
                'nombre' => 'Producto de Prueba',
                'cantidad' => 1,
                'precio_total' => 50000
            ]
        ]);
        
        $stmt->execute([
            $id_pedido_test,
            $hash_test,
            50000,
            $datos_comprador,
            $datos_productos
        ]);
        
        echo "<div class='alert alert-success'>Pedido de prueba creado con ID: {$id_pedido_test}</div>";
        
        // Recargar pedidos
        $pedidos = $db->query("
            SELECT * FROM pedidos_pagopar 
            ORDER BY fecha_creacion DESC 
            LIMIT 20
        ")->fetchAll(PDO::FETCH_ASSOC);
        
    } catch (Exception $e) {
        echo "<div class='alert alert-error'>Error al crear pedido de prueba: " . $e->getMessage() . "</div>";
    }
}

?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Panel de Pedidos PagoPar</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 20px;
            background: #f8f9fa;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
        }
        .header {
            background: white;
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 20px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .actions {
            margin: 20px 0;
        }
        .btn {
            display: inline-block;
            padding: 10px 20px;
            margin: 5px;
            background: #007bff;
            color: white;
            text-decoration: none;
            border-radius: 5px;
            border: none;
            cursor: pointer;
        }
        .btn:hover {
            background: #0056b3;
        }
        .btn-success {
            background: #28a745;
        }
        .btn-warning {
            background: #ffc107;
            color: #212529;
        }
        .btn-danger {
            background: #dc3545;
        }
        .table {
            width: 100%;
            background: white;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .table th, .table td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #dee2e6;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
        }
        .status-badge {
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 12px;
            font-weight: bold;
            text-transform: uppercase;
        }
        .status-pendiente {
            background: #fff3cd;
            color: #856404;
        }
        .status-pagado {
            background: #d4edda;
            color: #155724;
        }
        .status-cancelado {
            background: #f8d7da;
            color: #721c24;
        }
        .alert {
            padding: 12px 20px;
            margin: 10px 0;
            border-radius: 5px;
        }
        .alert-success {
            background: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .alert-warning {
            background: #fff3cd;
            color: #856404;
            border: 1px solid #ffeaa7;
        }
        .alert-error {
            background: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        .no-data {
            text-align: center;
            padding: 40px;
            color: #6c757d;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>Panel de Pedidos PagoPar</h1>
            <p>Gestión y monitoreo de pedidos de PagoPar para debugging y pruebas.</p>
        </div>

        <div class="actions">
            <a href="test_webhook_pagopar.php" class="btn btn-success">🧪 Probar Webhook</a>
            <a href="iniciar_pago_pagopar.php" class="btn">💳 Nuevo Pago</a>
            <a href="javascript:location.reload()" class="btn btn-warning">🔄 Actualizar</a>
            <a href="index.php" class="btn">🏠 Inicio</a>
        </div>

        <?php if (!empty($pedidos)): ?>
        <table class="table">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>ID Pedido Comercio</th>
                    <th>Estado</th>
                    <th>Monto Total</th>
                    <th>Monto Pagado</th>
                    <th>Fecha Creación</th>
                    <th>Fecha Pago</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($pedidos as $pedido): ?>
                <tr>
                    <td><?= htmlspecialchars($pedido['id']) ?></td>
                    <td>
                        <strong><?= htmlspecialchars($pedido['id_pedido_comercio']) ?></strong>
                        <br>
                        <small style="color: #6c757d;">
                            Hash: <?= htmlspecialchars(substr($pedido['hash_pagopar'], 0, 20)) ?>...
                        </small>
                    </td>
                    <td>
                        <span class="status-badge status-<?= strtolower($pedido['estado']) ?>">
                            <?= htmlspecialchars($pedido['estado']) ?>
                        </span>
                    </td>
                    <td>Gs. <?= number_format($pedido['monto_total'], 0, ',', '.') ?></td>
                    <td>
                        <?php if ($pedido['monto_pagado']): ?>
                            Gs. <?= number_format($pedido['monto_pagado'], 0, ',', '.') ?>
                        <?php else: ?>
                            <em>No pagado</em>
                        <?php endif; ?>
                    </td>
                    <td><?= date('d/m/Y H:i', strtotime($pedido['fecha_creacion'])) ?></td>
                    <td>
                        <?php if ($pedido['fecha_pago']): ?>
                            <?= date('d/m/Y H:i', strtotime($pedido['fecha_pago'])) ?>
                        <?php else: ?>
                            <em>Pendiente</em>
                        <?php endif; ?>
                    </td>
                    <td>
                        <a href="ver_pedido_pagopar.php?id=<?= $pedido['id'] ?>" class="btn" style="font-size: 12px; padding: 5px 10px;">
                            👁️ Ver
                        </a>
                        <?php if ($pedido['estado'] === 'pendiente'): ?>
                        <button onclick="simularPago(<?= $pedido['id'] ?>, '<?= htmlspecialchars($pedido['id_pedido_comercio']) ?>')" 
                                class="btn btn-success" style="font-size: 12px; padding: 5px 10px;">
                            ✅ Simular Pago
                        </button>
                        <?php endif; ?>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
        <?php else: ?>
        <div class="no-data">
            <h3>No hay pedidos registrados</h3>
            <p>Aún no se han registrado pedidos en el sistema.</p>
            <a href="carrito.php" class="btn">Ir al carrito para crear un pedido</a>
        </div>
        <?php endif; ?>

        <div style="margin-top: 40px; padding: 20px; background: white; border-radius: 8px;">
            <h3>Información del Sistema</h3>
            <ul>
                <li><strong>Total de pedidos:</strong> <?= count($pedidos) ?></li>
                <li><strong>Último pedido ID:</strong> 
                    <?php if (!empty($pedidos)): ?>
                        #<?= htmlspecialchars($pedidos[0]['id_pedido_comercio']) ?>
                    <?php else: ?>
                        Ninguno
                    <?php endif; ?>
                </li>
                <li><strong>Webhook URL:</strong> 
                    <code><?= 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/webhook_pagopar.php' ?></code>
                </li>
            </ul>
        </div>
    </div>

    <script>
    function simularPago(pedidoId, idPedidoComercio) {
        if (!confirm('¿Simular pago para el pedido ' + idPedidoComercio + '?')) {
            return;
        }

        const datosSimulacion = {
            test: true,
            simulation: true,
            id_pedido_comercio: idPedidoComercio,
            estado: 'pagado',
            monto: 50000,
            forma_pago: 'tarjeta_credito',
            fecha_pago: new Date().toISOString().slice(0, 19).replace('T', ' ')
        };

        fetch('webhook_pagopar.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(datosSimulacion)
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                alert('✅ Pago simulado correctamente');
                location.reload();
            } else {
                alert('❌ Error: ' + (data.error || 'Error desconocido'));
            }
        })
        .catch(error => {
            alert('❌ Error de conexión: ' + error.message);
        });
    }
    </script>
</body>
</html>