import { EntityManager } from '@mikro-orm/core' import { MikroORM } from '@mikro-orm/mysql' import Logger, { LoggerType } from './logger' import config from '../../mikro-orm.config' class Database { private static orm: MikroORM private static logger = Logger.type(LoggerType.APP) public static async initialize(): Promise { try { Database.orm = await MikroORM.init(config) this.logger.info('Database connection initialized') } catch (error) { this.logger.error(`MikroORM connection failed: ${error}`) throw error } } public static getEntityManager(): EntityManager { return Database.orm.em.fork() } } export default Database