1 <?php
2 /* --------------------------------------------------------------
3 CustomerInterface.inc.php 2015-02-18 gm
4 Gambio GmbH
5 http://www.gambio.de
6 Copyright (c) 2014 Gambio GmbH
7 Released under the GNU General Public License (Version 2)
8 [http://www.gnu.org/licenses/gpl-2.0.html]
9 --------------------------------------------------------------
10 */
11
12 /**
13 * Interface CustomerInterface
14 *
15 * @category System
16 * @package Customer
17 * @subpackage Interfaces
18 */
19 interface CustomerInterface
20 {
21 /**
22 * Returns the customer's ID.
23 *
24 * @return int Customer's ID.
25 */
26 public function getId();
27
28
29 /**
30 * Returns the customer's gender.
31 *
32 * @return CustomerGenderInterface Customer's gender.
33 */
34 public function getGender();
35
36
37 /**
38 * Returns the customer's first name.
39 *
40 * @return CustomerFirstnameInterface Customer's first name.
41 */
42 public function getFirstname();
43
44
45 /**
46 * Returns the customer's last name.
47 *
48 * @return CustomerLastnameInterface Customer's last name.
49 */
50 public function getLastname();
51
52
53 /**
54 * Returns the customer's date of birth.
55 *
56 * @return DateTime date of birth Customer's date of birth.
57 */
58 public function getDateOfBirth();
59
60
61 /**
62 * Returns the customer's VAT number.
63 *
64 * @return CustomerVatNumberInterface Customer's VAT number.
65 */
66 public function getVatNumber();
67
68
69 /**
70 * Returns the customer's telephone number.
71 *
72 * @return CustomerCallNumberInterface Customer's telephone number.
73 */
74 public function getTelephoneNumber();
75
76
77 /**
78 * Returns the customer's fax number.
79 *
80 * @return CustomerCallNumberInterface Customer's fax number.
81 */
82 public function getFaxNumber();
83
84
85 /**
86 * Returns the customer's email.
87 *
88 * @return CustomerEmailInterface Customer's email.
89 */
90 public function getEmail();
91
92
93 /**
94 * Returns the customer's default address.
95 *
96 * @return CustomerAddressInterface Customer's default address.
97 */
98 public function getDefaultAddress();
99
100
101 /**
102 * Sets the customer's ID.
103 *
104 * @param IdType $id customerId Customer ID.
105 *
106 * @throws InvalidArgumentException On invalid argument.
107 */
108 public function setId(IdType $id);
109
110
111 /**
112 * Sets the customer's gender.
113 *
114 * @param CustomerGenderInterface $gender Customer's gender.
115 */
116 public function setGender(CustomerGenderInterface $gender);
117
118
119 /**
120 * Sets the customer's first name.
121 *
122 * @param CustomerFirstnameInterface $firstname Customer's first name.
123 */
124 public function setFirstname(CustomerFirstnameInterface $firstname);
125
126
127 /**
128 * Sets the customer's last name.
129 *
130 * @param CustomerLastnameInterface $lastname Customer's last name.
131 */
132 public function setLastname(CustomerLastnameInterface $lastname);
133
134
135 /**
136 * Sets the customer's date of birth.
137 *
138 * @param DateTime $dateOfBirth date of birth Customer's date of birth.
139 */
140 public function setDateOfBirth(DateTime $dateOfBirth);
141
142
143 /**
144 * Sets the customer's VAT number.
145 *
146 * @param CustomerVatNumberInterface $vatNumber Customer's VAT number.
147 */
148 public function setVatNumber(CustomerVatNumberInterface $vatNumber);
149
150
151 /**
152 * Sets the customer's telephone number.
153 *
154 * @param CustomerCallNumberInterface $telephoneNumber Customer's telephone number.
155 */
156 public function setTelephoneNumber(CustomerCallNumberInterface $telephoneNumber);
157
158
159 /**
160 * Sets the customer's fax number.
161 *
162 * @param CustomerCallNumberInterface $faxNumber Customer's fax number.
163 */
164 public function setFaxNumber(CustomerCallNumberInterface $faxNumber);
165
166
167 /**
168 * Sets the customer's email.
169 *
170 * @param CustomerEmailInterface $email Customer's email.
171 */
172 public function setEmail(CustomerEmailInterface $email);
173
174
175 /**
176 * Sets the customer's password.
177 *
178 * @param CustomerPasswordInterface $password Customer's password.
179 */
180 public function setPassword(CustomerPasswordInterface $password);
181
182
183 /**
184 * Sets the customer's default address.
185 *
186 * @param CustomerAddressInterface $address Customer's default address.
187 */
188 public function setDefaultAddress(CustomerAddressInterface $address);
189
190
191 /**
192 * Returns the customer's password.
193 *
194 * @return CustomerPasswordInterface Customer's password.
195 */
196 public function getPassword();
197
198
199 /**
200 * Sets the customer's guest status.
201 *
202 * @param boolean $p_guest Customer's guest status.
203 */
204 public function setGuest($p_guest);
205
206
207 /**
208 * Checks if customer is a guest.
209 *
210 * @return bool Is customer a guest?
211 */
212 public function isGuest();
213
214
215 /**
216 * Returns the customer's status ID.
217 *
218 * @return int customerStatusId Customer's status ID.
219 */
220 public function getStatusId();
221
222
223 /**
224 * Sets the customer's status ID.
225 *
226 * @param int $p_statusId Customer's status ID.
227 */
228 public function setStatusId($p_statusId);
229
230
231 /**
232 * Returns the customer's number.
233 *
234 * @return string customerNumber Customer's number.
235 */
236 public function getCustomerNumber();
237
238
239 /**
240 * Sets the customer's number.
241 *
242 * @param CustomerNumberInterface $customerNumber Customer's number.
243 */
244 public function setCustomerNumber(CustomerNumberInterface $customerNumber);
245
246
247 /**
248 * Returns the customer's VAT number status.
249 *
250 * @return int Customer's VAT number status.
251 */
252 public function getVatNumberStatus();
253
254
255 /**
256 * Sets the customer's VAT number status.
257 *
258 * @param int $p_vatNumberStatus Customer's VAT number status.
259 */
260 public function setVatNumberStatus($p_vatNumberStatus);
261 }
262