Input
CanCreate?
Result = Can't
No
Yes
Can resolve conflixt?
Yes
Result = Can't
No
Input
Prepare data
Create in domain model
Result
Решаем проблему корректного добавления ПП в систему. Редактирование ПП остается ответственностью Sale.
Умеет отвечать на вопросы :
- можно ли создать ПП;
- куда распределиться ПП.
Умеет с правильным распределением сохранять ПП в систему.
Входящая ПП (Entity)
Активные ПП (Entity) - контакты, телефоны, emailы, партнер.
Активные брони (Entity)
Активные СЦ (Entity)
Правило распределения СЦ (ValueObject)
Результат распределения (ValueObject)
Тасок в эшелон.
Потому что теперь тип конфликта остался только один -дубли.
Работа с контактами.
Контакты не относятся к этому домену и их включение в доменную модель пока непонятно.