import { IRepositoryManager, RepositoryManager, } from "@/contexts/common/domain"; import { ISequelizeAdapter, createSequelizeAdapter, } from "@/contexts/common/infrastructure/sequelize"; export interface IUserContext { adapter: ISequelizeAdapter; repositoryManager: IRepositoryManager; //services: IApplicationService; } export class UserContext { private static instance: UserContext | null = null; public static getInstance(): IUserContext { if (!UserContext.instance) { UserContext.instance = new UserContext({ adapter: createSequelizeAdapter(), repositoryManager: RepositoryManager.getInstance(), }); } return UserContext.instance.context; } private context: IUserContext; private constructor(context: IUserContext) { this.context = context; } }