chore: add new route

This commit is contained in:
mahyargdz
2025-07-20 10:15:13 +03:30
parent 066d6c8598
commit 5322b6b6c4
48 changed files with 1282 additions and 295 deletions
+2
View File
@@ -2,6 +2,7 @@ import { EntityManager } from "@mikro-orm/postgresql";
import { Seeder } from "@mikro-orm/seeder";
import { Logger } from "@nestjs/common";
import { NotificationSettingSeeder } from "./notif-setting.seeder";
// import { PaymentGatewaySeeder } from "./payment-gateway.seeder";
import { RoleSeeder } from "./role.seeder";
@@ -11,6 +12,7 @@ export class IndexSeeder extends Seeder {
async run(em: EntityManager): Promise<void> {
this.logger.log("Starting seeding process...");
await new RoleSeeder().run(em);
await new NotificationSettingSeeder().run(em);
// await new PaymentGatewaySeeder().run(em);
this.logger.log("Seeding process completed successfully.");
}
+33
View File
@@ -0,0 +1,33 @@
import { EntityManager, RequiredEntityData } from "@mikro-orm/postgresql";
import { Seeder } from "@mikro-orm/seeder";
import { Logger } from "@nestjs/common";
import { NotificationSetting } from "../../src/modules/settings/entities/notification-setting.entity";
import { NotifDescriptions, NotifType } from "../../src/modules/settings/enums/notif-settings.enum";
export class NotificationSettingSeeder extends Seeder {
private readonly logger = new Logger(NotificationSettingSeeder.name);
async run(em: EntityManager): Promise<void> {
const notifSettingsData: RequiredEntityData<NotificationSetting>[] = Object.entries(NotifDescriptions).map(([type, { category, fa }]) => ({
type: type as NotifType,
category,
description: fa,
createdAt: new Date(),
updatedAt: new Date(),
}));
for (const notifSettingData of notifSettingsData) {
const existingSetting = await em.findOne(NotificationSetting, { type: notifSettingData.type });
if (!existingSetting) {
const notifSetting = em.create(NotificationSetting, notifSettingData);
await em.persistAndFlush(notifSetting);
this.logger.log(`[NotificationSettingSeeder] Created notification setting: ${notifSettingData.type}`);
} else {
this.logger.log(`[NotificationSettingSeeder] Notification setting already exists: ${notifSettingData.type}`);
}
}
this.logger.log(`[NotificationSettingSeeder] Seeding completed for ${notifSettingsData.length} notification settings.`);
}
}