const { sequelize } = require('../config/database'); // Import all models to ensure they are registered with Sequelize require('../models'); const { User } = require('../models'); require('dotenv').config(); const setupDatabase = async () => { try { console.log('šŸ”„ Setting up database...'); // Test database connection await sequelize.authenticate(); console.log('āœ… Database connection established.'); // Sync database with force to recreate all tables await sequelize.sync({ force: true }); console.log('āœ… Database synchronized successfully.'); // Create super admin user const superAdmin = await User.create({ firstName: 'Super', lastName: 'Admin', email: 'admin@courseworx.com', password: 'admin123', role: 'super_admin', phone: '+1234567890', isActive: true }); console.log('āœ… Super admin user created successfully.'); console.log('šŸ“§ Email: admin@courseworx.com'); console.log('šŸ”‘ Password: admin123'); // Create sample trainer const trainer = await User.create({ firstName: 'John', lastName: 'Trainer', email: 'trainer@courseworx.com', password: 'trainer123', role: 'trainer', phone: '+1234567891', isActive: true }); console.log('āœ… Sample trainer created successfully.'); console.log('šŸ“§ Email: trainer@courseworx.com'); console.log('šŸ”‘ Password: trainer123'); // Create sample trainee const trainee = await User.create({ firstName: 'Jane', lastName: 'Trainee', email: 'trainee@courseworx.com', password: 'trainee123', role: 'trainee', phone: '+1234567892', isActive: true }); console.log('āœ… Sample trainee created successfully.'); console.log('šŸ“§ Email: trainee@courseworx.com'); console.log('šŸ”‘ Password: trainee123'); console.log('\nšŸŽ‰ Database setup completed successfully!'); console.log('\nšŸ“‹ Default Users:'); console.log('Super Admin: admin@courseworx.com / admin123'); console.log('Trainer: trainer@courseworx.com / trainer123'); console.log('Trainee: trainee@courseworx.com / trainee123'); process.exit(0); } catch (error) { console.error('āŒ Database setup failed:', error); process.exit(1); } }; setupDatabase();