81 lines
2.3 KiB
JavaScript
81 lines
2.3 KiB
JavaScript
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",
|
|
});
|
|
|
|
/**
|
|
* Génère un code de ticket au format TTP2025ABC (10 caractères)
|
|
*/
|
|
function generateTicketCode() {
|
|
const year = new Date().getFullYear();
|
|
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
|
let randomChars = '';
|
|
for (let i = 0; i < 3; i++) {
|
|
randomChars += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
}
|
|
return `TTP${year}${randomChars}`;
|
|
}
|
|
|
|
/**
|
|
* Vérifie si un code existe déjà dans la base de données
|
|
*/
|
|
async function codeExists(code) {
|
|
const result = await pool.query(
|
|
'SELECT id FROM tickets WHERE code = $1',
|
|
[code]
|
|
);
|
|
return result.rows.length > 0;
|
|
}
|
|
|
|
async function generateFreshCodes() {
|
|
try {
|
|
console.log('🎟️ Génération de codes de tickets frais pour les tests...\n');
|
|
|
|
const freshCodes = [];
|
|
const numberOfCodes = 10; // Générer 10 codes
|
|
|
|
while (freshCodes.length < numberOfCodes) {
|
|
const code = generateTicketCode();
|
|
|
|
// Vérifier que le code n'existe pas déjà
|
|
if (!(await codeExists(code)) && !freshCodes.includes(code)) {
|
|
freshCodes.push(code);
|
|
}
|
|
}
|
|
|
|
console.log('✅ Codes générés avec succès!\n');
|
|
console.log('━'.repeat(60));
|
|
console.log('📋 CODES DE TICKETS DE TEST (NON UTILISÉS)');
|
|
console.log('━'.repeat(60));
|
|
freshCodes.forEach((code, index) => {
|
|
console.log(` ${index + 1}. ${code}`);
|
|
});
|
|
console.log('━'.repeat(60));
|
|
|
|
console.log('\n📝 INSTRUCTIONS:');
|
|
console.log(' 1. Connectez-vous avec: client1@example.com / Client123!');
|
|
console.log(' 2. Utilisez l\'un des codes ci-dessus pour jouer');
|
|
console.log(' 3. Le système attribuera un prix aléatoirement');
|
|
console.log(' 4. Chaque code ne peut être utilisé qu\'une seule fois\n');
|
|
|
|
console.log('💡 ASTUCE:');
|
|
console.log(' Ces codes n\'existent PAS encore dans la base de données.');
|
|
console.log(' Ils simulent des tickets de caisse physiques non utilisés.\n');
|
|
|
|
await pool.end();
|
|
} catch (error) {
|
|
console.error('❌ Erreur:', error.message);
|
|
await pool.end();
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
generateFreshCodes();
|