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 { const paymentGateways: RequiredEntityData[] = [ { 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}`); } } } }