62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
import { pool } from '../db.js';
|
|
|
|
const checkPendingTickets = async () => {
|
|
try {
|
|
const result = await pool.query(`
|
|
SELECT
|
|
t.id,
|
|
t.code,
|
|
t.status,
|
|
t.user_id,
|
|
t.played_at,
|
|
u.email as user_email,
|
|
u.first_name || ' ' || u.last_name as user_name,
|
|
p.name as prize_name
|
|
FROM tickets t
|
|
LEFT JOIN users u ON t.user_id = u.id
|
|
LEFT JOIN prizes p ON t.prize_id = p.id
|
|
WHERE t.status = 'PENDING'
|
|
ORDER BY t.played_at DESC
|
|
LIMIT 10
|
|
`);
|
|
|
|
console.log('\n📋 TICKETS EN ATTENTE (PENDING):\n');
|
|
if (result.rows.length === 0) {
|
|
console.log('⚠️ Aucun ticket PENDING trouvé\n');
|
|
} else {
|
|
result.rows.forEach((ticket, index) => {
|
|
console.log(`${index + 1}. Code: ${ticket.code}`);
|
|
console.log(` Client: ${ticket.user_name} (${ticket.user_email})`);
|
|
console.log(` Lot: ${ticket.prize_name}`);
|
|
console.log(` Joué le: ${ticket.played_at}`);
|
|
console.log('');
|
|
});
|
|
}
|
|
|
|
// Statistiques globales
|
|
const stats = await pool.query(`
|
|
SELECT
|
|
status,
|
|
COUNT(*) as count
|
|
FROM tickets
|
|
GROUP BY status
|
|
ORDER BY status NULLS FIRST
|
|
`);
|
|
|
|
console.log('📊 STATISTIQUES DES TICKETS:');
|
|
stats.rows.forEach(row => {
|
|
const statusLabel = row.status || 'NULL (disponible)';
|
|
const countStr = parseInt(row.count).toLocaleString('fr-FR');
|
|
console.log(` • ${statusLabel}: ${countStr}`);
|
|
});
|
|
console.log('');
|
|
|
|
await pool.end();
|
|
} catch (error) {
|
|
console.error('Erreur:', error.message);
|
|
await pool.end();
|
|
}
|
|
};
|
|
|
|
checkPendingTickets();
|