title: Need clarification on clean architecture and repository pattern
body: <p>I'm continuously reading materials on this topic for past 4 weeks, i've seen many implementations on github and, so far i understand the purpose but, i'm having some problems with implementation.  </p>
  
  <p>Let's start with usecase. If i'm correct than <code>usecase</code> holds business logic and perform action like validating or fetching some data through <code>repositories</code> and return some business object.</p>
  
  <p>You define interface for <code>repository</code> in application business layer, and you implement it in <code>interface-adapters</code> layer.</p>
  
  <p>The <code>repository</code> implementation lives in <code>interface-adapters</code> and need some sort of datasource that you inject from outside (Where does datasource live), should i implement interface for datasource in this layer?</p>
  
  <p>The most confusing thing for me are <code>models</code> and DTO's. What are <code>models</code> exactly, what is the purpose and why i want to use a <code>model</code>, I am using mongoose as an ORM, so, i assume that your schema is a <code>model</code>?  </p>
  
  <p>Which means that, <code>model</code> is just some data that you fetch from outside(for eg: Api, DB etc) and then you map this data to entity, and if so then where should i do the mapping (In repository or usecase or datasource)? </p>
  
  <p>I haven't touched controllers, presenters, or view-models yet, because i'm already so confused. </p>