/
IdInterface.php
181 lines (154 loc) · 4.6 KB
/
IdInterface.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?php
namespace byrokrat\id;
interface IdInterface
{
/**
* Generic 10 digit format
*/
public const FORMAT_10_DIGITS = 'S-sk';
/**
* Generic 12 digit format
*/
public const FORMAT_12_DIGITS = 'CSsk';
/**
* Get id as string
*/
public function getId(): string;
/**
* Get id as string
*/
public function __tostring(): string;
/**
* Format id according to format string
*/
public function format(string $format): string;
/**
* Get part of serial number before delimiter, 6 digits
*/
public function getSerialPreDelimiter(): string;
/**
* Get part of serial number after delimiter, 3 digits
*/
public function getSerialPostDelimiter(): string;
/**
* Get delimiter
*/
public function getDelimiter(): string;
/**
* Get check digit
*/
public function getCheckDigit(): string;
/**
* Get birth date
*
* NOTE that this is just a hint as birth date can not be guaranteed due to
* the limited quantity of personal identity numbers per day.
*/
public function getBirthDate(): \DateTimeImmutable;
/**
* Get age at date (defaults to current date)
*
* NOTE that this is just a hint as true age can not be guaranteed due to
* the limited quantity of personal identity numbers per day.
*/
public function getAge(\DateTimeInterface $atDate = null): int;
/**
* Get century part of date, 2 digits
*/
public function getCentury(): string;
/**
* Get sex as denoted by id
*
* NOTE that this is just a hint and can not be guaranteed due to
* the limited quantity of personal identity numbers per day.
*
* @see Sexes interface with idintifier constants
*/
public function getSex(): string;
/**
* Check if id represents a male
*
* NOTE that this is just a hint and can not be guaranteed due to
* the limited quantity of personal identity numbers per day.
*/
public function isMale(): bool;
/**
* Check if id represents a female
*
* NOTE that this is just a hint and can not be guaranteed due to
* the limited quantity of personal identity numbers per day.
*/
public function isFemale(): bool;
/**
* Check if sex other than male/female is denoted
*/
public function isSexOther(): bool;
/**
* Check if sex is not applicable
*/
public function isSexUndefined(): bool;
/**
* Get string describing birth county
*
* @see Counties interface with idintifier constants
*/
public function getBirthCounty(): string;
/**
* Get string describing legal form
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*
* @see LegalForms interface with idintifier constants
*/
public function getLegalForm(): string;
/**
* Check if id legal form is undefined
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isLegalFormUndefined(): bool;
/**
* Check if id represents a state, county, municipality or parish
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isStateOrParish(): bool;
/**
* Check if id represents a incorporated company
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isIncorporated(): bool;
/**
* Check if id represents a partnership
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isPartnership(): bool;
/**
* Check if id represents a economic association
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isAssociation(): bool;
/**
* Check if id represents a non-profit organization or foundation
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isNonProfit(): bool;
/**
* Check if id represents a trading company, limited partnership or partnership
*
* NOTE that this is just a hint and does not conclusively determine the
* legal form of the organization.
*/
public function isTradingCompany(): bool;
}