import { EntityName } from "@mikro-orm/core" import { SqlEntityManager } from "@mikro-orm/postgresql" import { Payment, PaymentSession, PaymentCollection } from "@models" import { defaultPaymentCollectionData, defaultPaymentData, defaultPaymentSessionData, } from "./data" export * from "./data" async function createEntities< T extends EntityName >(manager: SqlEntityManager, entity: T, data: any[]) { const created: T[] = [] for (let record of data) { created.push(manager.create(entity, record)) } await manager.persistAndFlush(created) return created } export async function createPaymentCollections( manager: SqlEntityManager, paymentCollectionData = defaultPaymentCollectionData ): Promise { return await createEntities( manager, PaymentCollection, paymentCollectionData ) } export async function createPaymentSessions( manager: SqlEntityManager, paymentSessionData = defaultPaymentSessionData ): Promise { return await createEntities( manager, PaymentSession, paymentSessionData ) } export async function createPayments( manager: SqlEntityManager, paymentData = defaultPaymentData ): Promise { return await createEntities(manager, Payment, paymentData) }