import pool from "@/lib/db";
import { scrapeShippingETA, updateETAInDatabase } from "@/lib/shipping-scraper";

/**
 * Manual script to test ETA scraping
 * Run with: npx tsx scripts/test-eta-scraper.ts
 * 
 * Ahora usa HTTP simple + Cheerio (mucho más rápido que Puppeteer)
 * Tiempo estimado por contenedor: 2-3 segundos
 */

async function testScraper() {
  try {
    // Test with sample containers
    const testContainers = [
      {
        id: "test-1",
        containerNumber: "EVER1234567",
        carrier: "Evergreen",
        trackingUrl: null,
      },
      {
        id: "test-2",
        containerNumber: "MSC7654321",
        carrier: "MSC",
        trackingUrl: null,
      },
      {
        id: "test-3",
        containerNumber: "COSCO9999999",
        carrier: "COSCO",
        trackingUrl: null,
      },
    ];

    console.log("🚀 Starting ETA scraper test (HTTP + Cheerio)...\n");

    for (const container of testContainers) {
      const startTime = Date.now();
      try {
        console.log(
          `📦 Testing ${container.carrier}: ${container.containerNumber}`
        );

        const result = await scrapeShippingETA(
          container.containerNumber,
          container.carrier,
          container.trackingUrl || undefined
        );

        const elapsed = Date.now() - startTime;
        console.log(`   Status: ${result.status}`);
        console.log(`   Raw: ${result.etaRaw}`);
        console.log(`   Formatted: ${result.etaFormatted}`);
        console.log(`   ⏱️  Time: ${elapsed}ms\n`);

        // Optionally save to DB (uncomment to test)
        // await updateETAInDatabase(pool, container.id, container.carrier, result);
      } catch (error) {
        console.error(`   ❌ Error: ${error}\n`);
      }
    }

    console.log("✅ Test completed!");
    await pool.end();
  } catch (error) {
    console.error("Fatal error:", error);
    process.exit(1);
  }
}

testScraper();
