PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Domain / Entity / User / Customer.php
ameliabooking / src / Domain / Entity / User Last commit date
AbstractUser.php 2 months ago Admin.php 1 year ago AppleCalendarEmployeeConnect.php 1 year ago Customer.php 7 months ago Manager.php 1 year ago Provider.php 2 months ago
Customer.php
101 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\Entity\User;
4
5 use AmeliaBooking\Domain\Collection\Collection;
6 use AmeliaBooking\Domain\Entity\Stripe\StripeConnect;
7 use AmeliaBooking\Domain\ValueObjects\Gender;
8 use AmeliaBooking\Domain\ValueObjects\String\Email;
9 use AmeliaBooking\Domain\ValueObjects\String\Name;
10 use AmeliaBooking\Domain\ValueObjects\String\Phone;
11
12 /**
13 * Class Customer
14 *
15 * @package AmeliaBooking\Domain\Entity\User
16 */
17 class Customer extends AbstractUser
18 {
19 /** @var Gender */
20 private $gender;
21
22 /** @var Collection */
23 private $stripeConnect;
24
25
26 /**
27 * @param Name $firstName
28 * @param Name $lastName
29 * @param Email $email
30 * @param Phone $phone
31 * @param Gender $gender
32 */
33 public function __construct(
34 Name $firstName,
35 Name $lastName,
36 Email $email,
37 Phone $phone,
38 Gender $gender
39 ) {
40 parent::__construct($firstName, $lastName, $email);
41 $this->phone = $phone;
42 $this->gender = $gender;
43 }
44
45 /**
46 * @return Gender
47 */
48 public function getGender()
49 {
50 return $this->gender;
51 }
52
53 /**
54 * @param Gender $gender
55 */
56 public function setGender(Gender $gender)
57 {
58 $this->gender = $gender;
59 }
60
61 /**
62 * Get the user type in a string form
63 */
64 public function getType()
65 {
66 return self::USER_ROLE_CUSTOMER;
67 }
68
69 /**
70 * @return Collection
71 */
72 public function getStripeConnect()
73 {
74 return $this->stripeConnect;
75 }
76
77 /**
78 * @param Collection $stripeConnect
79 */
80 public function setStripeConnect($stripeConnect)
81 {
82 $this->stripeConnect = $stripeConnect;
83 }
84
85
86 /**
87 * @return array
88 */
89 public function toArray()
90 {
91 return array_merge(
92 parent::toArray(),
93 [
94 'phone' => $this->getPhone()->getValue(),
95 'gender' => $this->getGender()->getValue(),
96 'stripeConnect' => $this->getStripeConnect() ? $this->getStripeConnect()->toArray() : null,
97 ]
98 );
99 }
100 }
101