chore: first commit
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { Options } from "@mikro-orm/core";
|
||||
import { PostgreSqlDriver } from "@mikro-orm/postgresql";
|
||||
import dotenv from "dotenv";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const config: Options = {
|
||||
driver: PostgreSqlDriver,
|
||||
dbName: process.env.DB_NAME,
|
||||
host: process.env.DB_HOST,
|
||||
port: Number(process.env.DB_PORT),
|
||||
user: process.env.DB_USER,
|
||||
password: process.env.DB_PASS,
|
||||
entities: ["./dist/**/*.entity.js"],
|
||||
entitiesTs: ["./src/**/*.entity.ts"],
|
||||
debug: process.env.NODE_ENV !== "production",
|
||||
migrations: {
|
||||
path: "./database/migrations",
|
||||
pathTs: "./database/migrations",
|
||||
tableName: "migrations",
|
||||
transactional: true,
|
||||
allOrNothing: true,
|
||||
dropTables: false,
|
||||
safe: true,
|
||||
emit: "ts",
|
||||
},
|
||||
seeder: {
|
||||
path: "./database/seeders",
|
||||
pathTs: "./database/seeders",
|
||||
defaultSeeder: "IndexSeeder",
|
||||
glob: "!(*.d).{js,ts}",
|
||||
emit: "ts",
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
@@ -0,0 +1,17 @@
|
||||
import { EntityManager } from "@mikro-orm/postgresql";
|
||||
import { Seeder } from "@mikro-orm/seeder";
|
||||
import { Logger } from "@nestjs/common";
|
||||
|
||||
// import { PaymentGatewaySeeder } from "./payment-gateway.seeder";
|
||||
import { RoleSeeder } from "./role.seeder";
|
||||
|
||||
export class IndexSeeder extends Seeder {
|
||||
private readonly logger = new Logger(IndexSeeder.name);
|
||||
|
||||
async run(em: EntityManager): Promise<void> {
|
||||
this.logger.log("Starting seeding process...");
|
||||
await new RoleSeeder().run(em);
|
||||
// await new PaymentGatewaySeeder().run(em);
|
||||
this.logger.log("Seeding process completed successfully.");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// import { EntityManager, RequiredEntityData } from "@mikro-orm/postgresql";
|
||||
// import { Seeder } from "@mikro-orm/seeder";
|
||||
// import { Logger } from "@nestjs/common";
|
||||
|
||||
// import { PaymentGateway } from "../../src/modules/payments/entities/payment-gateway.entity";
|
||||
// import { GatewayEnum } from "../../src/modules/payments/enums/gateway.enum";
|
||||
|
||||
// export class PaymentGatewaySeeder extends Seeder {
|
||||
// private readonly logger = new Logger(PaymentGatewaySeeder.name);
|
||||
|
||||
// async run(em: EntityManager): Promise<void> {
|
||||
// const paymentGateways: RequiredEntityData<PaymentGateway>[] = [
|
||||
// {
|
||||
// name: GatewayEnum.ZARINPAL,
|
||||
// nameFa: "زرین پال",
|
||||
// logoUrl: "https://storage.danakcorp.com/logo/fa-dark.png",
|
||||
// description: "درگاه پرداخت زرین پال",
|
||||
// },
|
||||
// ];
|
||||
|
||||
// for (const paymentGateway of paymentGateways) {
|
||||
// const existingPaymentGateway = await em.findOne(PaymentGateway, { name: paymentGateway.name });
|
||||
|
||||
// if (!existingPaymentGateway) {
|
||||
// const createdPaymentGateway = em.create(PaymentGateway, paymentGateway);
|
||||
|
||||
// await em.persistAndFlush(createdPaymentGateway);
|
||||
// this.logger.log(`[PaymentGatewaySeeder] Created payment gateway: ${createdPaymentGateway.name}`);
|
||||
// } else {
|
||||
// this.logger.log(`[PaymentGatewaySeeder] Payment gateway already exists: ${paymentGateway.name}`);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -0,0 +1,36 @@
|
||||
import { EntityManager, RequiredEntityData } from "@mikro-orm/postgresql";
|
||||
import { Seeder } from "@mikro-orm/seeder";
|
||||
import { Logger } from "@nestjs/common";
|
||||
|
||||
import { Role } from "../../src/modules/users/entities/role.entity";
|
||||
import { RoleEnum } from "../../src/modules/users/enums/role.enum";
|
||||
|
||||
export class RoleSeeder extends Seeder {
|
||||
private readonly logger = new Logger(RoleSeeder.name);
|
||||
|
||||
async run(em: EntityManager): Promise<void> {
|
||||
const roles: RequiredEntityData<Role>[] = [
|
||||
{
|
||||
name: RoleEnum.ADMIN,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
},
|
||||
{
|
||||
name: RoleEnum.USER,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
},
|
||||
];
|
||||
|
||||
for (const roleData of roles) {
|
||||
const existingRole = await em.findOne(Role, { name: roleData.name });
|
||||
if (!existingRole) {
|
||||
const role = em.create(Role, roleData);
|
||||
await em.persistAndFlush(role);
|
||||
this.logger.log(`[RoleSeeder] Created role: ${roleData.name}`);
|
||||
} else {
|
||||
this.logger.log(`[RoleSeeder] Role already exists: ${roleData.name}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user