Страница 1 из 1

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

Добавлено: 2020.05.29, 07:24
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?

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

Добавлено: 2020.05.29, 08:36
ElisDN
Не агрегатор, а агрегат.

А так да, если для инварианта агрегата Company никак не важны данные платежей, то можно вынести Finance в отдельный агрегат с полем companyId.

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

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