/**
 * Script pour vérifier les bookings créés
 */

async function checkBookings() {
  const Surreal = (await import("surrealdb")).default;
  const db = new Surreal();
  
  try {
    console.log("🔌 Connexion à SurrealDB...\n");

    await db.connect(
      process.env.SURREAL_URL ||
        "wss://gentle-island-06di2pv2c9po3a8euttd1alkek.aws-euw1.surreal.cloud/rpc"
    );

    await db.signin({
      username: process.env.SURREAL_USER || "rootuser",
      password: process.env.SURREAL_PASS || "your_password",
    });

    await db.use({
      namespace: process.env.SURREAL_NAMESPACE || "neoad",
      database: process.env.SURREAL_DATABASE || "maindb",
    });

    console.log("✅ Connecté\n");

    // Vérifier les bookings
    const result = await db.query(`
      SELECT screen, start_date, end_date, status 
      FROM campaign_booking 
      WHERE status != "cancelled"
      ORDER BY start_date
    `);
    
    const bookings = result[0] as any[];
    console.log(`📊 ${bookings.length} bookings trouvés:\n`);
    
    bookings.forEach((b: any) => {
      console.log(`  Screen: ${b.screen}`);
      console.log(`  Dates: ${b.start_date} → ${b.end_date}`);
      console.log(`  Status: ${b.status}`);
      console.log('');
    });

    // Tester une requête avec chevauchement
    console.log("\n🔍 Test de chevauchement pour le 15/02/2026:\n");
    
    const overlapResult = await db.query(`
      SELECT screen, start_date, end_date 
      FROM campaign_booking 
      WHERE status != "cancelled" 
      AND (
        (start_date <= <datetime>"2026-02-15T00:00:00Z" AND end_date >= <datetime>"2026-02-15T00:00:00Z") OR
        (start_date <= <datetime>"2026-02-15T23:59:59Z" AND end_date >= <datetime>"2026-02-15T23:59:59Z") OR
        (start_date >= <datetime>"2026-02-15T00:00:00Z" AND end_date <= <datetime>"2026-02-15T23:59:59Z")
      )
    `);
    
    const overlapping = overlapResult[0] as any[];
    console.log(`  ${overlapping.length} bookings trouvés qui chevauchent le 15/02/2026`);
    
    overlapping.forEach((b: any) => {
      console.log(`  - ${b.screen} (${b.start_date} → ${b.end_date})`);
    });

    await db.close();
  } catch (error) {
    console.error("❌ Erreur:", error);
  }
}

checkBookings();
