ReserveTickets::getReservationRequests()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Created by PhpStorm.
5
 * User: imhotek
6
 * Date: 28/11/16
7
 * Time: 21:48
8
 */
9
10
namespace ConferenceTools\Tickets\Domain\Command\Ticket;
11
12
use Carnage\Cqrs\Command\CommandInterface;
13
use ConferenceTools\Tickets\Domain\ValueObject\DiscountCode;
14
use ConferenceTools\Tickets\Domain\ValueObject\TicketReservationRequest;
15
16
class ReserveTickets implements CommandInterface
17
{
18
    /**
19
     * @var TicketReservationRequest[]
20
     */
21
    private $reservationRequests;
22
23
    /**
24
     * @var DiscountCode
25
     */
26
    private $discountCode;
27
28
    public function __construct(TicketReservationRequest ...$reservationRequests)
29
    {
30
        $this->reservationRequests = $reservationRequests;
31
    }
32
33
    public static function withoutDiscountCode(TicketReservationRequest ...$reservationRequests)
34
    {
35
        return new static(...$reservationRequests);
36
    }
37
38
    public static function withDiscountCode(DiscountCode $discountCode, TicketReservationRequest ...$reservationRequests)
39
    {
40
        $instance = new static(...$reservationRequests);
41
        $instance->discountCode = $discountCode;
42
43
        return $instance;
44
    }
45
46
    /**
47
     * @return TicketReservationRequest[]
48
     */
49
    public function getReservationRequests(): array
50
    {
51
        return $this->reservationRequests;
52
    }
53
54
    public function hasDiscountCode(): bool
55
    {
56
        return !($this->discountCode === null);
57
    }
58
59
    /**
60
     * @return DiscountCode
61
     */
62
    public function getDiscountCode(): DiscountCode
63
    {
64
        return $this->discountCode;
65
    }
66
}
67