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: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: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: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",
|
"build": "nest build",
|
||||||
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
||||||
"start": "nest start dist/main",
|
"start": "nest start dist/main",
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { UsersSeeder } from './users.seeder';
|
|||||||
import { CouponsSeeder } from './coupons.seeder';
|
import { CouponsSeeder } from './coupons.seeder';
|
||||||
import { NotificationPreferencesSeeder } from './notification-preferences.seeder';
|
import { NotificationPreferencesSeeder } from './notification-preferences.seeder';
|
||||||
import { UserWalletsSeeder } from './user-wallets.seeder';
|
import { UserWalletsSeeder } from './user-wallets.seeder';
|
||||||
|
import { InventorySeeder } from './inventory.seeder';
|
||||||
|
|
||||||
export class DatabaseSeeder extends Seeder {
|
export class DatabaseSeeder extends Seeder {
|
||||||
async run(em: EntityManager) {
|
async run(em: EntityManager) {
|
||||||
@@ -54,19 +55,23 @@ export class DatabaseSeeder extends Seeder {
|
|||||||
const foodsSeeder = new FoodsSeeder();
|
const foodsSeeder = new FoodsSeeder();
|
||||||
await foodsSeeder.run(em, restaurantsMap, categoriesMap);
|
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();
|
const couponsSeeder = new CouponsSeeder();
|
||||||
await couponsSeeder.run(em, restaurantsMap);
|
await couponsSeeder.run(em, restaurantsMap);
|
||||||
|
|
||||||
// 11. Create Admins
|
// 12. Create Admins
|
||||||
const adminsSeeder = new AdminsSeeder();
|
const adminsSeeder = new AdminsSeeder();
|
||||||
await adminsSeeder.run(em, rolesMap, restaurantsMap);
|
await adminsSeeder.run(em, rolesMap, restaurantsMap);
|
||||||
|
|
||||||
// 12. Create Users
|
// 13. Create Users
|
||||||
const usersSeeder = new UsersSeeder();
|
const usersSeeder = new UsersSeeder();
|
||||||
await usersSeeder.run(em);
|
await usersSeeder.run(em);
|
||||||
|
|
||||||
// 13. Create User Wallets
|
// 14. Create User Wallets
|
||||||
const userWalletsSeeder = new UserWalletsSeeder();
|
const userWalletsSeeder = new UserWalletsSeeder();
|
||||||
await userWalletsSeeder.run(em);
|
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