Files
ticketbeast/app/Reservation.php
2018-01-29 13:13:56 -05:00

45 lines
856 B
PHP

<?php
namespace App;
class Reservation
{
private $tickets;
private $email;
public function __construct($tickets, $email)
{
$this->tickets = $tickets;
$this->email = $email;
}
public function totalCost()
{
return $this->tickets->sum('price');
}
public function tickets()
{
return $this->tickets;
}
public function email()
{
return $this->email;
}
public function complete($paymentGateway, $paymentToken, $destinationAccountId)
{
$charge = $paymentGateway->charge($this->totalCost(), $paymentToken, $destinationAccountId);
return Order::forTickets($this->tickets(), $this->email(), $charge);
}
public function cancel()
{
foreach ($this->tickets as $ticket) {
$ticket->release();
}
}
}