Получается, что ProductRepository зависит от других репозиториев (Category, ProductType, Image, File....).
Теперь главный вопрос - как собирать товар (или другую сущность) из разных кусков?
Как обрабатывать метод $productRepository->save($product), если разные куски товара сохраняются по-разному.
Как быть с масштабированием, если в будущем появится еще что-то?