up seeder

This commit is contained in:
2025-12-15 15:43:41 +03:30
parent f6f4cb0f9a
commit 5ef6ee26dd
3 changed files with 39 additions and 4 deletions
+1
View File
@@ -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",
+9 -4
View File
@@ -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);
}
+29
View File
@@ -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();
}
}