<?php
// importacion.php
require __DIR__ . '/vendor/autoload.php';

use Automattic\WooCommerce\Client;
use Automattic\WooCommerce\HttpClient\HttpClientException;

// 1. CONFIG BÁSICA
set_time_limit(0);
header('Content-Type: text/html; charset=UTF-8');

$id   = isset($_GET['id']) ? intval($_GET['id']) : 0;
$step = $_GET['step'] ?? '';

if (!$id) {
    die('<div class="alert alert-danger text-center mt-5">Parámetro <strong>id</strong> missing</div>');
}

// conexión MySQL
$mysqli = new mysqli('localhost', 'ndconsulta', 'Nitro2021', 'db_compranet');
if ($mysqli->connect_error) {
    die('<div class="alert alert-danger text-center mt-5">MySQL error: ' . htmlspecialchars($mysqli->connect_error) . '</div>');
}

// cliente WooCommerce
$wc = new Client(
    'https://compranet.com.co',
    'ck_910af40e780677e03593d388885a2e58b7c4fa43',
    'cs_2983cea05dbc631dc6236c61c79feb35a61666cf',
    ['wp_api' => true, 'version' => 'wc/v3', 'query_string_auth' => true, 'timeout' => 60, 'verify_ssl' => false]
);
?>
<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Importación Producto</title>
    <!-- Bootstrap 5.3.2 CSS -->
    <link href="
https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css
" rel="stylesheet">

    <style>
        #spinner-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: rgba(255, 255, 255, 0.8);
            display: none;
            align-items: center;
            justify-content: center;
            z-index: 1050;
        }
    </style>
</head>

<body>
    <div id="spinner-overlay">
        <div class="text-center">
            <div class="spinner-border text-primary" role="status"><span class="visually-hidden">Loading...</span></div>
            <div class="mt-2">Procesando, por favor espera...</div>
        </div>
    </div>

    <div class="container py-5">
        <div class="card shadow-sm">
            <div class="card-body">
                <?php switch ($step):
                    case '':
                ?>
                        <h2 class="card-title text-center mb-4">¿Consultar si este producto se puede publicar?</h2>
                        <div class="text-center">
                            <button id="start-btn" class="btn btn-primary btn-lg">Consultar</button>
                        </div>
                    <?php
                        break;
                    case '1':
                    ?>
                        <h3 class="mb-3">Ejecutando actualización de IDs...</h3>
                        <div class="progress mb-2">
                            <div id="progress-bar" class="progress-bar progress-bar-striped progress-bar-animated" style="width:0%"></div>
                        </div>
                        <small>Espere mientras redirigimos al chequeo...</small>
                        <script>
                            document.addEventListener('DOMContentLoaded', function() {
                                var bar = document.getElementById('progress-bar');
                                var i = 0;
                                var total = 60;
                                var stepTime = 3000 / total;
                                var interval = setInterval(function() {
                                    i++;
                                    bar.style.width = (i / total * 100) + '%';
                                    if (i >= total) {
                                        clearInterval(interval);
                                        window.location.href = '?id=<?= $id ?>&step=check';
                                    }
                                }, stepTime);
                            });
                        </script>
                        <?php
                        $mysqli->query("CALL actualizar_id_wp()");
                        break;
                    case 'check':
                        $p = $mysqli->query("SELECT id,nombre,checklistStatus,wp_id FROM tb_productos WHERE id={$id}")->fetch_assoc();
                        if ($p['checklistStatus'] == 0):
                        ?>
                            <div class="alert alert-warning">Este producto no ha pasado el <strong>check status</strong>.</div>
                            <a href="?id=<?= $id ?>" class="btn btn-secondary">Volver</a>
                        <?php
                        elseif ($p['wp_id'] > 0):
                        ?>
                            <div class="alert alert-info">Este producto ya está publicado en WP (ID <?= $p['wp_id'] ?>).</div>
                            <a href="?id=<?= $id ?>" class="btn btn-secondary">Volver</a>
                        <?php
                        else:
                        ?>
                            <div class="alert alert-success">Producto listo para publicar en tienda: <strong><?= htmlspecialchars($p['nombre']) ?></strong></div>
                            <a href="?id=<?= $id ?>&step=2" class="btn btn-success me-2">Sí, continuar</a>
                            <a href="?id=<?= $id ?>" class="btn btn-danger">No</a>
                        <?php
                        endif;
                        break;
                    case '2':
                        $row = $mysqli->query("SELECT referenciaCPN,nombre FROM tb_productos WHERE id={$id}")->fetch_assoc();
                        echo '<h4 class="mb-3">Creando producto en WooCommerce…</h4>';
                        try {
                            $resp = $wc->post('products', [
                                'name'   => $row['nombre'],
                                'sku'    => $row['referenciaCPN'],
                                'type'   => 'variable',
                                'status' => 'publish'
                            ]);
                            $new_wp_id = $resp->id;
                            $mysqli->query("UPDATE tb_productos SET wp_id={$new_wp_id} WHERE id={$id}");
                            echo '<div class="alert alert-success">Producto creado (WP ID ' . $new_wp_id . ')</div>';
                        } catch (HttpClientException $e) {
                            die('<div class="alert alert-danger">Error al crear producto: ' . htmlspecialchars($e->getMessage()) . '</div>');
                        }
                        ?>
                        <div class="row">
                            <?php foreach (['actualizarcategorias.php', 'actualizardescripcioneswp.php', 'actualizarimageneswp.php'] as $script): ?>
                                <div class="col-md-4 mb-3">
                                    <div class="card">
                                        <div class="card-body text-center">
                                            <iframe src="<?= $script ?>?id=<?= $id ?>" width="100%" height="180" style="border:1px solid #ddd;"></iframe>
                                            <p class="mt-2 mb-0"><?= ucfirst(pathinfo($script, PATHINFO_FILENAME)) ?></p>
                                        </div>
                                    </div>
                                </div>
                            <?php endforeach; ?>
                        </div>
                        <div class="text-end">
                            <a href="?id=<?= $id ?>&step=3" class="btn btn-primary">Al terminar la actualización de imagenes has click aqui</a>
                        </div>
                    <?php
                        break;
                    case '3':
                    ?>
                        <h4 class="mb-3">Cargando las variaciones…</h4>
                        <iframe src="actualizarvariaciones.php?id=<?= $id ?>&force=1" width="100%" height="300" style="border:1px solid #ddd;"></iframe>
                        <div class="mt-3 text-center">
                            <button onclick="parent.location.reload()" class="btn btn-success">Al terminar la actualización de variaciones has click aqui</button>
                        </div>
                    <?php
                        break;
                    default:
                    ?>
                        <div class="alert alert-danger">Paso desconocido.</div>
                <?php endswitch; ?>
            </div>
        </div>
    </div>

    <script src="
https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.bundle.min.js
"></script>
    <script>
        document.getElementById('start-btn')?.addEventListener('click', function(e) {
            e.preventDefault();
            document.getElementById('spinner-overlay').style.display = 'flex';
            window.location.href = '?id=<?= $id ?>&step=1';
        });
    </script>
</body>

</html>