Slide 50
Slide 50 text
final class ShoppingCart extends AggregateRoot
{
public function __construct(
private ShoppingSession $shoppingSession,
private BasketId $basketId,
private array $products = []
) {
$this->record(
new ShoppingSessionStarted($basketId, [
'shoppingSession' => (string)$shoppingSession,
])
);
}
public function addProduct(
ProductId $productId,
int $quantity = 1
): void {
$this->record(
new ProductAdded($basketId, [
'productId' => (string)$productId,
'quantity' => $quantity,
])
);
}
}