import { pool } from '../db.js'; async function syncPrizeStocks() { try { console.log('\nπŸ”„ SYNCHRONISATION DES STOCKS\n'); // Compter les tickets par prize_id const ticketCounts = await pool.query(` SELECT prize_id, COUNT(*) as ticket_count FROM tickets GROUP BY prize_id `); console.log('πŸ“Š Mise Γ  jour des stocks...\n'); for (const row of ticketCounts.rows) { const { prize_id, ticket_count } = row; // RΓ©cupΓ©rer les infos du prize const prizeInfo = await pool.query( 'SELECT name, stock FROM prizes WHERE id = $1', [prize_id] ); if (prizeInfo.rows.length > 0) { const oldStock = prizeInfo.rows[0].stock; const newStock = parseInt(ticket_count); // Mettre Γ  jour le stock await pool.query( 'UPDATE prizes SET stock = $1 WHERE id = $2', [newStock, prize_id] ); console.log(`βœ… ${prizeInfo.rows[0].name}`); console.log(` Ancien stock: ${oldStock}`); console.log(` Nouveau stock: ${newStock}`); console.log(''); } } // Afficher le rΓ©sultat final const finalResult = await pool.query(` SELECT p.name, p.type, p.stock, COUNT(t.id) as tickets_count FROM prizes p LEFT JOIN tickets t ON p.id = t.prize_id GROUP BY p.id, p.name, p.type, p.stock ORDER BY tickets_count DESC `); console.log('πŸ“¦ RΓ‰SUMΓ‰ FINAL:\n'); console.log('β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”'); finalResult.rows.forEach(row => { const name = row.name.padEnd(35); const stock = row.stock.toString().padStart(10); const tickets = row.tickets_count.toString().padStart(10); console.log(`β”‚ ${name} Stock: ${stock} | Tickets: ${tickets} β”‚`); }); console.log('β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n'); console.log('βœ… Synchronisation terminΓ©e!\n'); await pool.end(); process.exit(0); } catch (error) { console.error('❌ Erreur:', error.message); await pool.end(); process.exit(1); } } syncPrizeStocks();