-
Notifications
You must be signed in to change notification settings - Fork 14
/
Director.php
116 lines (102 loc) · 3.14 KB
/
Director.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
namespace SynergiTech\Creditsafe\Models\Company;
use SynergiTech\Creditsafe\Models\Company;
/**
* This class contains all data relating to the Director and Company
*/
class Director
{
protected $company;
protected $directorDetails;
protected $current;
/**
* Function constructs the Director Class
* @param Company $company Used to store a company data in the Director Class
* @param array $directorDetails Directors Data that needs to be stored in the Director Class
* @param bool $current Boolean used to indicate if the director is a current or previous director
*/
public function __construct(Company $company, array $directorDetails, bool $current)
{
$this->company = $company;
$this->directorDetails = $directorDetails;
if (isset($this->directorDetails['dateOfBirth'])) {
$this->directorDetails['dateOfBirth'] = new \DateTime($this->directorDetails['dateOfBirth']);
}
$this->directorDetails['positions'] = array_map(function ($position) {
//Add if statement to check if position exists
if (isset($position['dateAppointed'])) {
//Can't assign datetime due to previousDirectors not having dateAppointed
$position['dateAppointed'] = new \DateTime($position['dateAppointed']);
}
return $position;
}, $this->directorDetails['positions']);
$this->current = $current;
}
/**
* Checks if the director is a current director
* @return boolean Returns if the current variable is true
*/
public function isCurrent() : bool
{
return $this->current === true;
}
/**
* Checks if the director is a previous director
* @return boolean Return if the previous variable is not true
*/
public function isPrevious() : bool
{
return $this->current !== true;
}
/**
*
* @return string Returns the Directors ID
*/
public function getID() : string
{
return $this->directorDetails['id'] ?? '';
}
/**
*
* @return string Returns the gender of the Director
*/
public function getGender() : string
{
return $this->directorDetails['gender'] ?? '';
}
/**
*
* @return DateTime | null Returns the Date Of Birth of the Director
*/
public function getDateOfBirth() : ?\DateTime
{
if (isset($this->directorDetails['dateOfBirth'])) {
return $this->directorDetails['dateOfBirth'];
}
return null;
}
/**
*
* @return array Returns an array containing the position and the date appointed
*/
public function getPositions() : array
{
return $this->directorDetails['positions'] ?? [];
}
/**
*
* @return string Returns the directors name
*/
public function getName() : string
{
return $this->directorDetails['name'] ?? '';
}
/**
*
* @return array Returns the directors address in an array
*/
public function getAddress() : array
{
return $this->directorDetails['address'] ?? [];
}
}