<?php
ini_set('memory_limit', '512M'); // o más: '512M', '1G', etc.
$baseUrl = "https://www.securitydoctorscr.com/products.json?page=";
$saveTo = "products.json";

// Eliminar el archivo si existe
if (file_exists($saveTo)) {
    unlink($saveTo);
    echo "🗑️ Archivo $saveTo eliminado.\n";
}

$allProducts = [];
$page = 1;

while (true) {
    $url = $baseUrl . $page;
    echo "🔍 Consultando página $page...\n";

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ' .
        '(KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200) {
        echo "❌ Error HTTP $httpCode en página $page. Se detiene.\n";
        break;
    }

    $data = json_decode($response, true);

    if (json_last_error() !== JSON_ERROR_NONE) {
        echo "❌ Error de JSON en página $page: " . json_last_error_msg() . "\n";
        break;
    }

    if (empty($data['products'])) {
        echo "📭 Página $page vacía. Descarga completa.\n";
        break;
    }

    $allProducts = array_merge($allProducts, $data['products']);
    $page++;
}

file_put_contents($saveTo, json_encode(['products' => $allProducts], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
echo "✅ Se guardaron " . count($allProducts) . " productos en $saveTo\n";