refactor: the user setting and change to be cateogry based

This commit is contained in:
mahyargdz
2025-02-28 16:34:11 +03:30
parent 207e0e46ea
commit 5b1b574d41
21 changed files with 242 additions and 341 deletions
+14 -21
View File
@@ -1,31 +1,24 @@
import { Logger } from "@nestjs/common";
import { DataSource } from "typeorm";
import { NotifSetting } from "../../src/modules/settings/entities/notif-setting.entity";
import { FarsiNotifSettingsEnum, NotifSettingsEnum } from "../../src/modules/settings/enums/notif-settings.enum";
const notifSettings = [
{ title: NotifSettingsEnum.ANNOUNCE_NOTIF, title_fa: FarsiNotifSettingsEnum.ANNOUNCE_NOTIF },
{ title: NotifSettingsEnum.ANSWER_TICKET, title_fa: FarsiNotifSettingsEnum.ANSWER_TICKET },
{ title: NotifSettingsEnum.BILL_PAYMENT, title_fa: FarsiNotifSettingsEnum.BILL_PAYMENT },
{ title: NotifSettingsEnum.BILL_PAYMENT_REMINDER, title_fa: FarsiNotifSettingsEnum.BILL_PAYMENT_REMINDER },
{ title: NotifSettingsEnum.BLOCKING_SERVICE, title_fa: FarsiNotifSettingsEnum.BLOCKING_SERVICE },
{ title: NotifSettingsEnum.CREATE_INVOICE, title_fa: FarsiNotifSettingsEnum.CREATE_INVOICE },
{ title: NotifSettingsEnum.CREATE_TICKET, title_fa: FarsiNotifSettingsEnum.CREATE_TICKET },
{ title: NotifSettingsEnum.UNBLOCKING_SERVICE, title_fa: FarsiNotifSettingsEnum.UNBLOCKING_SERVICE },
{ title: NotifSettingsEnum.CREATE_SERVICE, title_fa: FarsiNotifSettingsEnum.CREATE_SERVICE },
];
import { NotificationSetting } from "../../src/modules/settings/entities/notification-setting.entity";
import { NotifDescriptions, NotifType } from "../../src/modules/settings/enums/notif-settings.enum";
export const seedNotifSettings = async (dataSource: DataSource, logger: Logger) => {
try {
const notifSettingRepo = dataSource.getRepository(NotifSetting);
for (const setting of notifSettings) {
const newSetting = notifSettingRepo.create(setting);
await notifSettingRepo.save(newSetting);
}
logger.log("Notif Settings Successfully");
const notifSettingRepo = dataSource.getRepository(NotificationSetting);
const notifSettings = Object.entries(NotifDescriptions).map(([type, { category, fa }]) => ({
type: type as NotifType,
category,
description: fa,
}));
await notifSettingRepo.insert(notifSettings);
logger.log(`Successfully seeded ${notifSettings.length} notification settings.`);
} catch (error) {
logger.error("Error in seeding settings", error);
logger.error("Error in seeding notification settings", error);
process.exit(1);
}
};