You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.3 KiB
JavaScript

const { run } = require('../src/database')
const fs = require('fs')
const path = require('path')
async function seedDatabase() {
try {
console.log('🌱 Chargement des données de test...')
// Créer un utilisateur admin (BUG : mot de passe en clair)
await run(
`INSERT INTO users (email, password, nom, prenom, is_admin)
VALUES (?, ?, ?, ?, ?)`,
['admin@bricoloc.fr', 'admin123', 'Admin', 'BricoLoc', 1]
)
// Créer un utilisateur standard (BUG : mot de passe en clair)
await run(
`INSERT INTO users (email, password, nom, prenom, telephone, adresse, code_postal, ville)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
[
'jean.dupont@email.fr',
'password123',
'Dupont',
'Jean',
'0612345678',
'123 Rue de la Paix',
'31000',
'Toulouse',
]
)
console.log('✓ Utilisateurs créés')
// Load seed files
const seedsDir = path.join(__dirname, '../data/seeds')
const seedFiles = ['entrepots.sql', 'categories.sql', 'outils.sql', 'stocks.sql']
for (const file of seedFiles) {
const filePath = path.join(seedsDir, file)
if (fs.existsSync(filePath)) {
console.log(` Loading ${file}...`)
const sql = fs.readFileSync(filePath, 'utf8')
// Split by semicolons and execute each statement
const statements = sql
.split(';')
.map(s => s.trim())
.filter(s => s.length > 0 && !s.startsWith('--'))
for (const statement of statements) {
try {
await run(statement)
} catch (error) {
// Skip duplicate entries or errors (for re-running seed)
if (!error.message.includes('UNIQUE constraint failed')) {
console.warn(` Warning: ${error.message}`)
}
}
}
console.log(`${file} chargé`)
}
}
console.log('\n✅ Données de test chargées avec succès')
console.log('\n📊 Résumé:')
console.log(' - 2 utilisateurs (admin + standard)')
console.log(' - 10 entrepôts')
console.log(' - 12 catégories')
console.log(' - 50+ outils')
console.log(' - Stocks pour tous les outils/entrepôts')
} catch (error) {
console.error('❌ Erreur lors du seed:', error.message)
process.exit(1)
}
}
seedDatabase()