Я пытаюсь сделать заявку на управление сезонами, соревнованиями и т. Д.
И у меня следующий вопрос. Можно ли создать сводный корень из другого совокупного корня?
Я объясню, у меня следующий сценарий, в сезоне может быть много соревнований. Конкуренция может существовать без сезона, но конкуренция состоит из множества этапов, и этап не может существовать без конкурса.
Ну, я думал о создании фазы из совокупности соревнований, но в моей области есть фаза, идентичность и множество вариантов поведения. Это заставляет меня думать, что это совокупный корень.
Может быть хороший подход сделать что-то вроде?
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
]));
}
}
И затем, в ответ на это событие, создайте Фазу в своем контексте.
Или, может быть, лучше иметь команду в моем контексте фазы, которая создает фазу и ссылается на соревнование.
Задача ещё не решена.
Других решений пока нет …