face / src /seed.js
aliroohan179's picture
feat: implement core backend POS API with authentication, role-based access control, menu management, and order processing logic.
1e480b5
Raw History Blame Contribute Delete
1.63 kB
/**
* 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);
});