import { UserRepositorySupabase } from '../../infra/supabase/repository/user.repository'; import { UserService } from './user.service'; import { UserController } from './user.controller'; export class UserFactory { private static repository: UserRepositorySupabase; private static service: UserService; private static controller: UserController; static getRepository() { if (!UserFactory.repository) { UserFactory.repository = new UserRepositorySupabase(); } return UserFactory.repository; } static getService() { if (!UserFactory.service) { UserFactory.service = new UserService(UserFactory.getRepository()); } return UserFactory.service; } static getController() { if (!UserFactory.controller) { UserFactory.controller = new UserController(UserFactory.getService()); } return UserFactory.controller; } }