39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import 'dotenv/config';
|
|
import { pool } from '../db.js';
|
|
|
|
async function testInfuseurStock() {
|
|
try {
|
|
const result = await pool.query(`
|
|
SELECT
|
|
p.*,
|
|
COALESCE(COUNT(t.id), 0) as total_tickets,
|
|
COALESCE(COUNT(CASE WHEN t.played_at IS NOT NULL THEN 1 END), 0) as tickets_used,
|
|
p.stock + COALESCE(COUNT(t.id), 0) as initial_stock
|
|
FROM prizes p
|
|
LEFT JOIN tickets t ON p.id = t.prize_id
|
|
WHERE p.type = 'INFUSEUR'
|
|
GROUP BY p.id
|
|
`);
|
|
|
|
console.log('📊 Résultat de la requête SQL pour INFUSEUR:');
|
|
console.table(result.rows.map(r => ({
|
|
name: r.name,
|
|
stock: r.stock,
|
|
total_tickets: r.total_tickets,
|
|
tickets_used: r.tickets_used,
|
|
initial_stock: r.initial_stock
|
|
})));
|
|
|
|
console.log('\n✅ Calcul corrigé:');
|
|
console.log('Stock généré (initial_stock) = stock + total_tickets');
|
|
console.log(`${result.rows[0].initial_stock} = ${result.rows[0].stock} + ${result.rows[0].total_tickets}`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Erreur:', error);
|
|
} finally {
|
|
await pool.end();
|
|
}
|
|
}
|
|
|
|
testInfuseurStock();
|