import pkg from "pg";
const { Pool } = pkg;

// Configuration de la base de données
const pool = new Pool({
  host: "51.75.24.29",
  port: 5433,
  user: "postgres",
  password: "postgres",
  database: "thetiptop_dev",
});

async function checkGameStatus() {
  try {
    console.log('🎮 Vérification du statut du jeu...\n');

    // Récupérer la configuration du jeu
    const result = await pool.query(
      'SELECT * FROM game_settings ORDER BY created_at DESC LIMIT 1'
    );

    if (result.rows.length === 0) {
      console.log('❌ Aucune configuration de jeu trouvée');
      await pool.end();
      return;
    }

    const settings = result.rows[0];
    const now = new Date();
    const startDate = new Date(settings.start_date);
    const endDate = new Date(settings.end_date);

    console.log('━'.repeat(60));
    console.log('📊 CONFIGURATION ACTUELLE DU JEU');
    console.log('━'.repeat(60));
    console.log(`   Status: ${settings.is_active ? '✅ Actif' : '❌ Inactif'}`);
    console.log(`   Date de début: ${startDate.toLocaleString('fr-FR')}`);
    console.log(`   Date de fin: ${endDate.toLocaleString('fr-FR')}`);
    console.log(`   Date actuelle: ${now.toLocaleString('fr-FR')}`);
    console.log(`   Tickets totaux: ${settings.total_tickets}`);
    console.log(`   Tickets générés: ${settings.tickets_generated}`);
    console.log('━'.repeat(60));

    // Vérifier si le jeu est actif
    const isInDateRange = now >= startDate && now <= endDate;
    const isActive = settings.is_active && isInDateRange;

    console.log('\n🔍 ANALYSE:');
    if (!settings.is_active) {
      console.log('   ❌ Le jeu est marqué comme inactif dans la configuration');
    } else if (!isInDateRange) {
      console.log('   ❌ La date actuelle est en dehors de la période du jeu');
      if (now < startDate) {
        console.log(`   ⏰ Le jeu commence dans ${Math.ceil((startDate - now) / (1000 * 60 * 60 * 24))} jours`);
      } else {
        console.log(`   ⏰ Le jeu s'est terminé il y a ${Math.ceil((now - endDate) / (1000 * 60 * 60 * 24))} jours`);
      }
    } else {
      console.log('   ✅ Le jeu est actif et dans la période valide');
    }

    await pool.end();
  } catch (error) {
    console.error('❌ Erreur:', error.message);
    await pool.end();
    process.exit(1);
  }
}

checkGameStatus();
