/** * Seed script — creates the owner account + default categories. * Run once: node src/seed.js */ require('dotenv').config({ path: require('path').resolve(__dirname, '../.env') }); const mongoose = require('mongoose'); const User = require('./models/User'); const Category = require('./models/Category'); const DEFAULT_CATEGORIES = [ { name: 'Deals', order: 0 }, { name: 'Soups', order: 1 }, { name: 'Appetizers', order: 2 }, { name: 'Rice', order: 3 }, { name: 'Noodles', order: 4 }, { name: 'Chicken Gravy', order: 5 }, { name: 'Sea Food', order: 6 }, { name: 'Beverages', order: 7 }, ]; async function seed() { await mongoose.connect(process.env.MONGODB_URI); console.log('Connected to MongoDB Atlas'); // Create owner if not exists const existing = await User.findOne({ username: 'owner' }); if (!existing) { await User.create({ name: 'Owner', username: 'owner', password: 'golden@wok123', role: 'owner', adminPin: '1234' }); console.log('✅ Owner created — username: owner | password: golden@wok123 | adminPin: 1234'); console.log('⚠️ Change these credentials immediately after first login!'); } else { console.log('ℹ️ Owner already exists, skipping'); } // Create default categories for (const cat of DEFAULT_CATEGORIES) { const exists = await Category.findOne({ name: cat.name }); if (!exists) { await Category.create(cat); console.log(`✅ Category created: ${cat.name}`); } } console.log('\n🎉 Seed complete!'); process.exit(0); } seed().catch((err) => { console.error('Seed failed:', err); process.exit(1); });