Необходимо реализовать два агрегата:
Покупатель, который включает:
- Корневую сущность покупателя
- Тип карты
- Метод оплаты
Заказ, который включает:
- Корневую сущность заказа
- Статус заказа
- Список товаров
- Адрес
Для каждого агрегата необходимо реализовать репозиторий и фабрику.
Инварианты:
- Адрес не может быть пустым (валидация через поля)
- Заказ должен содержать хотя бы один товар
- Идентификаторы сущностей не могут быть пустым