1 <?php
2 /* --------------------------------------------------------------
3 AbstractCustomerFactory.inc.php 2015-02-18 gm
4 Gambio GmbH
5 http://www.gambio.de
6 Copyright (c) 2015 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 AbstractCustomerFactory
14 *
15 * @category System
16 * @package Customer
17 * @subpackage Interfaces
18 */
19 abstract class AbstractCustomerFactory
20 {
21 /**
22 * Creates a new customer object.
23 *
24 * @return Customer Created customer.
25 */
26 abstract public function createCustomer();
27
28
29 /**
30 * Creates a new customer address object.
31 *
32 * @return CustomerAddress Created customer address.
33 */
34 abstract public function createCustomerAddress();
35
36
37 /**
38 * Creates a new customer country object with the given parameters.
39 *
40 * @param IdType $id Country ID.
41 * @param CustomerCountryNameInterface $name Country name.
42 * @param CustomerCountryIso2Interface $iso2 Country ISO-2 code.
43 * @param CustomerCountryIso3Interface $iso3 Country ISO-3 code.
44 * @param IdType $addressFormatId Country address format ID.
45 * @param bool $status Country status.
46 *
47 * @return CustomerCountry Created customer country.
48 */
49 abstract public function createCustomerCountry(IdType $id,
50 CustomerCountryNameInterface $name,
51 CustomerCountryIso2Interface $iso2,
52 CustomerCountryIso3Interface $iso3,
53 IdType $addressFormatId,
54 $status);
55
56
57 /**
58 * Creates a new customer country zone object with the given parameters.
59 *
60 * @param IdType $id Country zone ID.
61 * @param CustomerCountryZoneNameInterface $name Country zone name.
62 * @param CustomerCountryZoneIsoCodeInterface $isoCode Country ISO code.
63 *
64 * @return CustomerCountryZone Created customer country zone.
65 */
66 abstract public function createCustomerCountryZone(IdType $id,
67 CustomerCountryZoneNameInterface $name,
68 CustomerCountryZoneIsoCodeInterface $isoCode);
69 }