DDD: Совокупный корень создан из события

Я пытаюсь сделать заявку на управление сезонами, соревнованиями и т. Д.
И у меня следующий вопрос. Можно ли создать сводный корень из другого совокупного корня?

Я объясню, у меня следующий сценарий, в сезоне может быть много соревнований. Конкуренция может существовать без сезона, но конкуренция состоит из множества этапов, и этап не может существовать без конкурса.

Ну, я думал о создании фазы из совокупности соревнований, но в моей области есть фаза, идентичность и множество вариантов поведения. Это заставляет меня думать, что это совокупный корень.

Может быть хороший подход сделать что-то вроде?

public class Competition extends AggregateRoot
{
private $phases;

public function addPhase(PhaseId $phaseId, PhaseOrder $phaseOrder, PhaseType $phaseType)
{
// ... Add to list

$this->recordEvent(new PhaseWasCreated([
'phaseId' => $phaseId,
'phaseType' => $phaseType
]));
}
}

И затем, в ответ на это событие, создайте Фазу в своем контексте.

Или, может быть, лучше иметь команду в моем контексте фазы, которая создает фазу и ссылается на соревнование.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]