-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathContractMutation.php
88 lines (76 loc) · 1.61 KB
/
ContractMutation.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* @copyright 2016-present Hostnet B.V.
*/
declare(strict_types=1);
namespace Functional\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn("type")
* @ORM\DiscriminatorMap({
* 1 = "HostingContractMutation",
* 2 = "DomainContractMutation",
* 3 = "ContractMutation"
* })
*/
class ContractMutation
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*
* @var int
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Contract", inversedBy="mutations")
* @ORM\JoinColumn()
*/
private $contract;
/**
* @ORM\Column(type="string")
*/
private $identifier;
/**
* @ORM\Column(type="integer")
*
* @var int
*/
private $status;
/**
* @param Contract $contract
* @param Contract $original
*/
public function __construct(Contract $contract, Contract $original)
{
$this->contract = $contract;
$this->absorb($original);
}
public function getId(): int
{
return $this->id;
}
public function getContract(): Contract
{
return $this->contract;
}
public function getIdentifier(): string
{
return $this->identifier;
}
public function getStatus(): int
{
return $this->status;
}
/**
* @param Contract $original
*/
protected function absorb(Contract $original): void
{
$this->identifier = $original->getIdentifier();
$this->status = $original->getStatus();
}
}