id; } public function getSessionId(): ?string { return $this->sessionId; } public function setSessionId(string $sessionId): static { $this->sessionId = $sessionId; return $this; } public function isCompleted(): ?bool { return $this->completed; } public function setCompleted(bool $completed): static { $this->completed = $completed; return $this; } public function getCustomer(): ?Customer { return $this->customer; } public function setCustomer(Customer $customer): static { $this->customer = $customer; return $this; } public function getTotal(): float { return $this->customer->getTickets()->reduce(function (float $total, Ticket $ticket) { return $total + TicketData::TICKET_DATA[$ticket->getType()]['price']; }, 0); } public function getDonation(): ?float { return $this->donation; } public function setDonation(?float $donation): static { $this->donation = $donation; return $this; } }