import { appLogger } from '#utilities/logger' import { Database } from '#utilities/database' import { EntityManager, MikroORM } from '@mikro-orm/core' export abstract class BaseRepository { protected orm!: MikroORM protected em!: EntityManager constructor() { this.initializeORM().catch((error) => { appLogger.error(`Failed to initialize Repository: ${error instanceof Error ? error.message : String(error)}`) }) } private async initializeORM() { try { this.orm = await Database.getInstance() this.em = this.orm.em.fork() } catch (error: any) { appLogger.error(`Failed to initialize ORM: ${error instanceof Error ? error.message : String(error)}`) throw error } } }