Files
2025-05-11 12:26:26 +03:30

37 lines
1.1 KiB
TypeScript

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}`);
}
}
}
}