В каком слое должны находиться мапперы в clean architecture?
==============================================================

 Я только разбираюсь с dependency injection и clean architecture, поэтому вопрос может быть вообще некорректным :)  

  

Есть 2 сущности.   

Назовем их `Source` и `Destination`.  

  

Обе в слое домена.  

  

Есть необходимость и возможность преобразования одной сущности в другую без использования каких-то зависимостей.  

Поэтому маппер, на данный момент, находится тоже в слое домена.  

  

Но сейчас, при преобразовании, понадобилось не только переместить значения полей из `Source` в `Destination`, но и записать в одно из полей модели `Destination` значение, которое должно быть получено из еще одной модели (допустим `ThirdPartyEntity`), которая получается из репозитория, реализация которого находится в слое инфраструктуры, а в слое данных только интерфейс (нужен для use cases).  

  

Значит ли это, что нужно маппер вынести в слой инфраструктуры, а в слое данных создать интерфейс маппера и использовать его?  

  

Можно, конечно добавить `ThirdPartyEntity` как параметр в маппер, а саму модель получать из репозитория там, где маппер вызывается, наверное это будет более правильно. 

 Поместите маппер в корень композиции, который по определению знает о всех слоях. Зарегистрируйте в IoC контейнере и получайте как зависимость во всех нужных местах