the-tip-top-backend/scripts/apply-grand-prize-migration.js
soufiane 33668e5a64 fix: resolve all ESLint warnings and update dependencies
- Remove unused variables and imports across codebase
- Use empty catch blocks where error object not needed
- Remove unused fs, path imports from apply-grand-prize-migration.js
- Remove unused OAuth2Client from oauth.controller.js
- Update dependencies to latest patch versions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 10:49:45 +01:00

90 lines
2.4 KiB
JavaScript

/**
* Appliquer la migration pour le gros lot
*/
import 'dotenv/config';
import { pool } from '../db.js';
async function applyMigration() {
console.log('🔧 Application de la migration: add-grand-prize-type\n');
try {
// Étape 1: Ajouter le type GRAND_PRIZE à l'enum (transaction séparée)
console.log('📝 Ajout du type GRAND_PRIZE...');
await pool.query(`ALTER TYPE prize_type ADD VALUE IF NOT EXISTS 'GRAND_PRIZE'`);
console.log('✅ Type GRAND_PRIZE ajouté\n');
// Étape 2: Vérifier si le lot existe déjà
const existing = await pool.query(`SELECT id FROM prizes WHERE name = 'An de thé'`);
if (existing.rows.length > 0) {
console.log('⚠️ Le lot existe déjà, mise à jour...');
await pool.query(`
UPDATE prizes SET
type = 'GRAND_PRIZE',
description = 'Gros lot du tirage final - Un an de thé d''exception',
value = '360.00',
stock = 1,
probability = 0,
is_active = TRUE
WHERE name = 'An de thé'
`);
} else {
console.log('📝 Création du gros lot...');
await pool.query(`
INSERT INTO prizes (
type,
name,
description,
value,
stock,
probability,
is_active
) VALUES (
'GRAND_PRIZE',
'An de thé',
'Gros lot du tirage final - Un an de thé d''exception',
'360.00',
1,
0,
TRUE
)
`);
}
console.log('✅ Migration appliquée avec succès!\n');
// Vérifier
const result = await pool.query(`
SELECT name, type, value, stock, is_active
FROM prizes
WHERE name = 'An de thé'
`);
if (result.rows.length > 0) {
console.log('🎁 Gros lot créé:');
console.log(JSON.stringify(result.rows[0], null, 2));
} else {
console.log('⚠️ Le lot n\'a pas été créé');
}
// Afficher tous les lots
console.log('\n📋 Tous les lots:');
const allPrizes = await pool.query(`
SELECT name, type, value, stock, probability, is_active
FROM prizes
ORDER BY CAST(value AS DECIMAL) DESC
`);
console.table(allPrizes.rows);
} catch (error) {
console.error('❌ Erreur:', error.message);
console.error(error);
} finally {
await pool.end();
}
}
applyMigration();