up seeder
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
"db:update": "npx mikro-orm schema:update --run --config ./src/config/mikro-orm.config.dev.ts ",
|
||||
"db:drop": "npx mikro-orm schema:drop --run --config ./src/config/mikro-orm.config.dev.ts",
|
||||
"db:seed": "npx mikro-orm seeder:run --config ./src/config/mikro-orm.config.dev.ts",
|
||||
"db:reset": "npm run db:drop && npm run db:create && npm run db:seed",
|
||||
"build": "nest build",
|
||||
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
||||
"start": "nest start dist/main",
|
||||
|
||||
@@ -14,6 +14,7 @@ import { UsersSeeder } from './users.seeder';
|
||||
import { CouponsSeeder } from './coupons.seeder';
|
||||
import { NotificationPreferencesSeeder } from './notification-preferences.seeder';
|
||||
import { UserWalletsSeeder } from './user-wallets.seeder';
|
||||
import { InventorySeeder } from './inventory.seeder';
|
||||
|
||||
export class DatabaseSeeder extends Seeder {
|
||||
async run(em: EntityManager) {
|
||||
@@ -54,19 +55,23 @@ export class DatabaseSeeder extends Seeder {
|
||||
const foodsSeeder = new FoodsSeeder();
|
||||
await foodsSeeder.run(em, restaurantsMap, categoriesMap);
|
||||
|
||||
// 10. Create Coupons
|
||||
// 10. Create Inventory for all Foods
|
||||
const inventorySeeder = new InventorySeeder();
|
||||
await inventorySeeder.run(em);
|
||||
|
||||
// 11. Create Coupons
|
||||
const couponsSeeder = new CouponsSeeder();
|
||||
await couponsSeeder.run(em, restaurantsMap);
|
||||
|
||||
// 11. Create Admins
|
||||
// 12. Create Admins
|
||||
const adminsSeeder = new AdminsSeeder();
|
||||
await adminsSeeder.run(em, rolesMap, restaurantsMap);
|
||||
|
||||
// 12. Create Users
|
||||
// 13. Create Users
|
||||
const usersSeeder = new UsersSeeder();
|
||||
await usersSeeder.run(em);
|
||||
|
||||
// 13. Create User Wallets
|
||||
// 14. Create User Wallets
|
||||
const userWalletsSeeder = new UserWalletsSeeder();
|
||||
await userWalletsSeeder.run(em);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import type { EntityManager } from '@mikro-orm/core';
|
||||
import { Food } from '../modules/foods/entities/food.entity';
|
||||
import { Inventory } from '../modules/inventory/entities/inventory.entity';
|
||||
|
||||
export class InventorySeeder {
|
||||
async run(em: EntityManager): Promise<void> {
|
||||
const foods = await em.find(Food, {});
|
||||
|
||||
for (const food of foods) {
|
||||
// Check if inventory already exists for this food
|
||||
const existingInventory = await em.findOne(Inventory, {
|
||||
food: { id: food.id },
|
||||
});
|
||||
|
||||
if (!existingInventory) {
|
||||
const inventory = em.create(Inventory, {
|
||||
food,
|
||||
totalStock: 50,
|
||||
availableStock: 50,
|
||||
});
|
||||
|
||||
em.persist(inventory);
|
||||
}
|
||||
}
|
||||
|
||||
await em.flush();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user