I'm trying to implement DDD architecture to my application modules and get stuck with a problem of storing similar(depending) structures between them.
In the first package I store everything that is related to entity People: Services(Repositories), Controllers, Models, etc...
In the second package I store everything that is related to another entity Apartments: Services(Repositories), Controllers, Models, etc...
Each Apartment can contain multiple Tenants which are stored in database as the same structure as People.
Some Apartment package services should be able to call methods like get/update/... Tenants. I would gladly not re-implement these actions and use them from the implementations in the People package PeopleService, but that service returns People entity, not the Tenant.
Should I create additional structure (copy-paste whole source code) of People into the Apartment package, call it Tenant and convert return types of PeopleService to it?
Or is there another way to do it?
Also, where should I store interfaces of services/repositories(interfaces with CRUD-like methods) of concrete entity? Should interface PeopleService be both in People and Apartment packages?
Thanks.