const mongoose = require('mongoose'); const Admin = require('./models/adminModel'); const dotenv = require('dotenv'); const path = require('path'); dotenv.config({ path: path.join(__dirname, '..', 'config', 'config.env') }); const createInitialAdmin = async () => { try { await mongoose.connect(process.env.DB_URL); console.log('āœ… Connected to MongoDB'); const adminData = { username: 'admin', email: 'admin@mkcart.com', password: 'Admin@123', firstName: 'Super', lastName: 'Admin', role: 'super_admin', permissions: { users: { view: true, create: true, edit: true, delete: true }, products: { view: true, create: true, edit: true, delete: true }, orders: { view: true, edit: true, delete: true }, analytics: { view: true, export: true }, settings: { view: true, edit: true } }, isActive: true }; const existingAdmin = await Admin.findOne({ $or: [{ username: adminData.username }, { email: adminData.email }] }); if (existingAdmin) { console.log('āš ļø Admin user already exists'); console.log('Username:', existingAdmin.username); console.log('Email:', existingAdmin.email); console.log('Role:', existingAdmin.role); return; } const admin = new Admin(adminData); await admin.save(); console.log('āœ… Initial admin user created successfully!'); console.log('Username:', admin.username); console.log('Email:', admin.email); console.log('Password:', adminData.password); console.log('Role:', admin.role); console.log('\nšŸ” Please change the password after first login!'); } catch (error) { console.error('āŒ Error creating admin user:', error.message); } finally { await mongoose.disconnect(); console.log('šŸ”Œ Disconnected from MongoDB'); } }; createInitialAdmin();