package manager import "users_management/m/repository" type RepositoryManager interface { NewUserRepository() repository.UsersRepo NewDeviceRepository() repository.DevicesRepo NewBackboneRepository() repository.BackboneRepo NewFishboneRepository() repository.FishboneRepo NewTowerRepository() repository.TowerRepo NewDevicePortRepository() repository.DevicePortRepo } type repositoryManager struct { infra InfraManager } func NewRepositoryManager(infra InfraManager) RepositoryManager { return &repositoryManager{ infra: infra, } } func (rm *repositoryManager) NewUserRepository() repository.UsersRepo { return repository.NewUsersRepo(rm.infra.Conn()) } func (rm *repositoryManager) NewDeviceRepository() repository.DevicesRepo { return repository.NewDevicesRepo(rm.infra.Conn()) } func (rm *repositoryManager) NewBackboneRepository() repository.BackboneRepo { return repository.NewBackboneRepo(rm.infra.Conn()) } func (rm *repositoryManager) NewFishboneRepository() repository.FishboneRepo { return repository.NewFishboneRepo(rm.infra.Conn()) } func (rm *repositoryManager) NewTowerRepository() repository.TowerRepo { return repository.NewTowerRepo(rm.infra.Conn()) } func (rm *repositoryManager) NewDevicePortRepository() repository.DevicePortRepo { return repository.NewDevicePortRepo(rm.infra.Conn()) }