Как связать агрегаторы?

Обсуждаем, как правильно строить приложения
Ответить
Trent
Сообщения: 13
Зарегистрирован: 2019.04.25, 08:43

Как связать агрегаторы?

Сообщение Trent »

Есть сущность-агрегатор Company

Код: Выделить всё

$company = new Company(
$name = new Name ('Ромашка'),
$inn = new Inn('23234234234'),
$form = new CompanyForm('Общество с ограниченной ответственностью');
[
$finance = new Finance('2018','123456,'123456)
]
)
Вопрос, собственно, в Finance. Это отдельные csv файлы, выгруженные из ERP, имеющие Инн, год оплат и, собственно, оплаты. Файлы обновляются постоянно и, соответственно, я должен их загружать в приложение.

Делаю это отдельно от агрегатора Company и думал, что Finance - это отдельный агрегатор который я должен связать с агрегатором Company.
Как я понял в парадигме DDD все операции проводятся через агрегатор, таким образом, если я хочу загрузить новые данные в finance, я должен вызвать какой нибудь метод в Company getNewFinanceData(), который запустит обновление Finance для Company.

Или вообще не делать Finance отдельным агрегатором? Finance не может существовать отдельно (точней может, но не имеет смысла). Как правильно сделать связь между Finance и Company?
Аватара пользователя
ElisDN
Сообщения: 5841
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как связать агрегаторы?

Сообщение ElisDN »

Не агрегатор, а агрегат.

А так да, если для инварианта агрегата Company никак не важны данные платежей, то можно вынести Finance в отдельный агрегат с полем companyId.
Trent
Сообщения: 13
Зарегистрирован: 2019.04.25, 08:43

Re: Как связать агрегаторы?

Сообщение Trent »

Видимо моё вчерашнее общение с платежным агрегатором дало свои плоды)) Я даже в одном месте исправил агрегат на агрегатор))) Извините.
Спасибо, Дмитрий
Ответить