40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
import { pool } from '../db.js';
|
|
|
|
const verifyTickets = async () => {
|
|
try {
|
|
console.log('\n📊 VÉRIFICATION DES TICKETS\n');
|
|
|
|
// Total count
|
|
const countResult = await pool.query('SELECT COUNT(*) FROM tickets');
|
|
console.log(`✅ Total: ${parseInt(countResult.rows[0].count).toLocaleString('fr-FR')} tickets`);
|
|
|
|
// Sample tickets
|
|
const sampleResult = await pool.query('SELECT code, prize_id, status FROM tickets ORDER BY RANDOM() LIMIT 10');
|
|
console.log('\n🎫 Échantillon de tickets:');
|
|
sampleResult.rows.forEach(t => {
|
|
console.log(` ${t.code} - Prize ID: ${t.prize_id} - Status: ${t.status || 'NULL'}`);
|
|
});
|
|
|
|
// First and last tickets
|
|
const rangeResult = await pool.query('SELECT code FROM tickets ORDER BY id LIMIT 1');
|
|
const lastResult = await pool.query('SELECT code FROM tickets ORDER BY id DESC LIMIT 1');
|
|
console.log(`\n📍 Premier ticket: ${rangeResult.rows[0].code}`);
|
|
console.log(`📍 Dernier ticket: ${lastResult.rows[0].code}`);
|
|
|
|
// Verify format
|
|
const formatCheck = await pool.query(`
|
|
SELECT COUNT(*) as invalid_count
|
|
FROM tickets
|
|
WHERE code !~ '^TTP[0-9]{4}[A-Z0-9]{3}$'
|
|
`);
|
|
console.log(`\n✅ Tickets avec format invalide: ${formatCheck.rows[0].invalid_count}`);
|
|
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('❌ Erreur:', error.message);
|
|
process.exit(1);
|
|
}
|
|
};
|
|
|
|
verifyTickets();
|