public static function issueInvoice(Invoice\Id $id, Invoice\Seller $seller, Invoice\Buyer $buyer, int $maxItemNumbers = 3) : Invoice { $invoice = new Invoice($id); $invoiceIssued = new InvoiceIssued($id, $seller, $buyer, $maxItemNumbers); $invoice->events[] = $invoiceIssued; $invoice->applyInvoiceIssued($invoiceIssued); return $invoice; }
public function add(Invoice $invoice) { $this->eventStore->apply(new EventStream\Name(Invoice::class), $invoice->getRecordedEvents()); }