<?php
declare(strict_types=1);
namespace App\Entity\Vista;
use App\Entity\Local\PushNotificationSubscription;
use App\Entity\Local\Restrictions;
use Doctrine\ORM\Mapping as ORM;
use Lexik\Bundle\JWTAuthenticationBundle\Security\User\JWTUserInterface;
use Nelmio\ApiDocBundle\Annotation\Model;
use Swagger\Annotations as SWG;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\UserRepositoryORMDecorator")
* @UniqueEntity("email", groups={"signUp", "update"})
* @ORM\Table(name="user")
* @ORM\HasLifecycleCallbacks()
*/
class LoyaltyMember implements UserInterface, JWTUserInterface, \Serializable
{
/**
* @ORM\Id()
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="UUID")
* @var string|null
*/
protected $id;
/**
* @ORM\Column(type="string", nullable=true)
* @var string|null
*/
protected $userSessionId;
/**
* Original
*
* @Groups({"update-preferences"})
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $memberId;
/**
* Original
*
* @Groups({"signUp", "update"})
* @Assert\NotBlank(groups={"signUp", "update"})
* @ORM\Column(type="string")
* @var string|null
*/
protected $firstName;
/**
* Original
*
* @Groups({"signUp", "update"})
* @Assert\NotBlank(groups={"signUp", "update"})
* @ORM\Column(type="string")
* @var string|null
*/
protected $lastName;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $fullName;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $cardNumber;
/**
* Original
*
* @Groups("optional")
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $mobilePhone;
/**
* @Groups("optional")
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $homePhone;
/**
* @Groups("optional")
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $appleUserId;
/**
* @Groups("optional")
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $appleEmailAddress;
/**
* Original
*
* @Groups({"signUp", "login", "reset-password"})
* @Assert\Email(groups={"login", "signUp", "reset-password", "update"})
* @Assert\NotBlank(groups={"login", "signUp", "reset-password", "update"})
*
* @ORM\Column(type="string", unique=true)
* @var string|null
*/
protected $email;
/**
* Original
*
* @Groups({"update-preferences"})
* @ORM\Column(type="string")
* @var string|null
*/
protected $clubID;
/**
* Original
*
* @SWG\Property(type="array", @SWG\Items(ref=@Model(type=\App\Entity\Vista\MemberBalance::class)))
* @ORM\Column(type="array")
* @var MemberBalance[]|null
*/
protected $balanceList;
/**
* Original
*
* @ORM\Column(type="string", nullable=true)
* @var string|null
*/
protected $userName;
/**
* Original
*
* @Groups({"signUp", "login"})
* @Assert\NotBlank(groups={"login", "signUp"})
* @Assert\Length(min="4", groups={"signUp"})
* @Assert\Regex(
* pattern="/^[A-Za-zÀ-ž0-9!§$%&\/()=?\,.\-_:;+*~|@#$%]+$/",
* htmlPattern="/^[A-Za-zÀ-ž0-9!§$%&\/()=?\,.\-_:;+*~|@#$%]+$/",
* groups={"login", "signUp", "update"})
* @var string|null
*/
protected $password;
/**
* Original
*
* @var Restrictions|null
*/
protected $restrictions;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $middleName;
/**
* Original
*
* @Groups({"optional"})
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $address1;
/**
* Original
*
* @Groups({"optional"})
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $state;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @Groups({"optional"})
* @var string|null
*/
protected $city;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $zipCode;
/**
* Original
*
* @ORM\Column(nullable=true, type="boolean")
* @Groups({"optional", "update-preferences"})
* @var boolean|null
*/
protected $sendNewsletter;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $educationLevel;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $householdIncome;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $personsInHousehold;
/**
* Changed from string|null
*
* @Groups({"signUp", "update"})
* @ORM\Column(nullable=true, type="datetime_immutable")
* @var \DateTimeImmutable|null
*/
protected $dateOfBirth;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $status;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $suburb;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @Groups({"signUp", "update"})
* @var string|null
*/
protected $gender;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $pickupComplex;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $preferredComplex;
/**
* Original
*
* @SWG\Property(type="array", @SWG\Items(type="integer"))
* @ORM\Column(nullable=true, type="array")
* @Groups({"signUp", "update", "update-preferences"})
* @var integer[]|null
*/
protected $preferredComplexList;
/**
* Original
*
* @SWG\Property(type="array", @SWG\Items(type="integer"))
* @ORM\Column(nullable=true, type="array")
* @Groups({"update-preferences"})
* @var integer[]|null
*/
protected $preferenceList;
/**
* @Groups({"optional"})
* @ORM\Column(type="boolean", nullable=true)
* @var boolean|null
*/
protected $opera;
/**
* @ORM\Column(type="boolean", nullable=true)
* @var boolean|null
*/
protected $familyClubAndChildrenActions;
/**
* @Groups({"optional"})
* @ORM\Column(type="boolean", nullable=true)
* @var boolean|null
*/
protected $remembranceEventsService;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $clubName;
/**
* Original
*
* @Groups({"optional", "update-preferences"})
* @ORM\Column(nullable=true, type="boolean")
* @var boolean|null
*/
protected $contactByThirdParty;
/**
* Changed from string|null
*
* @ORM\Column(nullable=true, type="datetime")
* @var \DateTime|null
*/
protected $expiryDate;
/**
* Original
*
* @Groups({"optional", "update-preferences"})
* @ORM\Column(nullable=true, type="boolean")
* @var boolean|null
*/
protected $wishToReceiveSMS;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $workZipCode;
/**
* Original
*
* @SWG\Property(type="array", @SWG\Items(type="string"))
* @ORM\Column(nullable=true, type="array")
* @var string[]|null
*/
protected $cardList;
/**
* Original
*
* @Groups({"update-preferences"})
* @SWG\Property(type="array", @SWG\Items(type="integer"))
* @ORM\Column(nullable=true, type="array")
* @var integer[]|null
*/
protected $preferredGenres;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $occupation;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $maritalStatus;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $mailingFrequency;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $pin;
/**
* Original
*
* @SWG\Property(type="array", @SWG\Items(ref=@Model(type=\App\Entity\Local\ValueObject\ExpiryPoint::class)))
* @ORM\Column(nullable=true, type="array")
* @var \App\Entity\Local\ValueObject\ExpiryPoint[]|null
*/
protected $expiryPointsList;
/**
* Original
*
* @ORM\Column(nullable=true, type="integer")
* @var integer|null
*/
protected $memberLevelId;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $memberLevelName;
/**
* Changed from string|null
*
* @ORM\Column(nullable=true, type="datetime")
* @var \DateTime|null
*/
protected $loyaltySessionExpiry;
/**
* @ORM\Column(nullable=true, type="text")
* @var string|null
*/
protected $loyaltySessionToken;
/**
* Original
*
* @ORM\Column(nullable=true, type="boolean")
* @var boolean|null
*/
protected $giftCard;
/**
* Changed from float|null
*
* @SWG\Property(type="string")
* @ORM\Column(nullable=true, type="decimal", precision=10, scale=2)
* @var float|null
*/
protected $giftCardBalance;
/**
* Changed from string|null
*
* @ORM\Column(nullable=true, type="datetime")
* @var \DateTime|null
*/
protected $isBannedFromMakingUnpaidBookingsUntil;
/**
* Original
*
* @ORM\Column(nullable=true, type="boolean")
* @var boolean|null
*/
protected $membershipActivated;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $memberItemId;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $externalID;
/**
* Original
*
* @ORM\Column(nullable=true, type="string")
* @var string|null
*/
protected $nationalID;
/**
* Original
*
* @Groups({"optional"})
* @ORM\Embedded(class="\App\Entity\Local\PushNotificationSubscription")
* @var PushNotificationSubscription|null
*/
protected $pushNotificationSubscription;
/**
* Original
*
* @ORM\Column(type="boolean", nullable=true)
* @var boolean|null
*/
protected $isAnonymous;
/**
* Original
*
* @ORM\Column(type="boolean", nullable=true, options={"default": 0})
* @var boolean|null
*/
protected $validatedFiscaliazionLaw;
/**
* Original
*
* @ORM\Column(type="string", nullable=true)
* @var string|null
*/
protected $memberLanguageIETFCode;
/**
* @ORM\Column(type="datetime_immutable", nullable=true)
* @var \DateTimeImmutable
*/
protected $modifiedAt;
/**
* @ORM\Column(type="datetime_immutable", nullable=true)
* @var \DateTimeImmutable
*/
protected $createdAt;
/**
* @param $username
* @param array $payload
*
* @return LoyaltyMember
*/
public static function createFromPayload($username, array $payload)
{
return (new self())
->setMemberId($payload['memberId'])
->setEmail($payload['email'])
->setUserSessionId($payload['userSessionId'])
->setUsername($payload['username'])
->setClubID($payload['clubID']);
}
/**
* @return string[]
*/
public function getRoles()
{
return ['ROLE_MOBILE_CLIENT'];
}
/**
* {@inheritDoc}
*/
public function getSalt()
{
return '';
}
public function eraseCredentials()
{
}
public function serialize()
{
return serialize([
$this->id,
$this->email,
$this->userSessionId
]);
}
public function unserialize($serialized)
{
list(
$this->id,
$this->email,
$this->userSessionId
) = unserialize($serialized, ['allowed_classes' => false]);
}
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
/**
* @param string|null $id
* @return LoyaltyMember
*/
public function setId(?string $id): LoyaltyMember
{
$this->id = $id;
return $this;
}
/**
* @return string|null
*/
public function getUserSessionId(): ?string
{
return $this->userSessionId;
}
/**
* @param string|null $userSessionId
* @return LoyaltyMember
*/
public function setUserSessionId(?string $userSessionId): LoyaltyMember
{
$this->userSessionId = $userSessionId;
/**
* @var LoyaltyMember $self
*/
return $this;
}
/**
* @return string|null
*/
public function getMemberId(): ?string
{
return $this->memberId;
}
/**
* @param string|null $memberId
* @return LoyaltyMember
*/
public function setMemberId(?string $memberId): LoyaltyMember
{
$this->memberId = $memberId;
return $this;
}
/**
* @return string|null
*/
public function getFirstName(): ?string
{
return $this->firstName;
}
/**
* @param string|null $firstName
* @return LoyaltyMember
*/
public function setFirstName(?string $firstName): LoyaltyMember
{
$this->firstName = $firstName;
return $this;
}
/**
* @return string|null
*/
public function getLastName(): ?string
{
return $this->lastName;
}
/**
* @param string|null $lastName
* @return LoyaltyMember
*/
public function setLastName(?string $lastName): LoyaltyMember
{
$this->lastName = $lastName;
return $this;
}
/**
* @return string|null
*/
public function getFullName(): ?string
{
return $this->fullName;
}
/**
* @param string|null $fullName
* @return LoyaltyMember
*/
public function setFullName(?string $fullName): LoyaltyMember
{
$this->fullName = $fullName;
return $this;
}
/**
* @return string|null
*/
public function getCardNumber(): ?string
{
return $this->cardNumber;
}
/**
* @param string|null $cardNumber
* @return LoyaltyMember
*/
public function setCardNumber(?string $cardNumber): LoyaltyMember
{
$this->cardNumber = $cardNumber;
return $this;
}
/**
* @return string|null
*/
public function getMobilePhone(): ?string
{
return $this->mobilePhone;
}
/**
* @param string|null $mobilePhone
* @return LoyaltyMember
*/
public function setMobilePhone(?string $mobilePhone): LoyaltyMember
{
$this->mobilePhone = $mobilePhone;
$this->homePhone = $mobilePhone;
return $this;
}
/**
* @return string|null
*/
public function getHomePhone(): ?string
{
return $this->homePhone;
}
/**
* @param string|null $homePhone
* @return LoyaltyMember
*/
public function setHomePhone(?string $homePhone): LoyaltyMember
{
$this->homePhone = $homePhone;
return $this;
}
/**
* @return string|null
*/
public function getAppleUserId(): ?string
{
return $this->appleUserId;
}
/**
* @param string|null $appleUserId
* @return LoyaltyMember
*/
public function setAppleUserId(?string $appleUserId): LoyaltyMember
{
$this->appleUserId = $appleUserId;
return $this;
}
/**
* @return string|null
*/
public function getAppleEmailAddress(): ?string
{
return $this->appleEmailAddress;
}
/**
* @param string|null $appleEmailAddress
* @return LoyaltyMember
*/
public function setAppleEmailAddress(?string $appleEmailAddress): LoyaltyMember
{
$this->appleEmailAddress = $appleEmailAddress;
return $this;
}
/**
* @return string|null
*/
public function getEmail(): ?string
{
return $this->email;
}
/**
* @param string|null $email
* @return LoyaltyMember
*/
public function setEmail(?string $email): LoyaltyMember
{
$this->email = $email;
return $this;
}
/**
* @return string|null
*/
public function getClubID(): ?string
{
return $this->clubID;
}
/**
* @param string|null $clubID
* @return LoyaltyMember
*/
public function setClubID(?string $clubID): LoyaltyMember
{
$this->clubID = $clubID;
return $this;
}
/**
* @return MemberBalance[]|null
*/
public function getBalanceList(): ?array
{
return $this->balanceList;
}
/**
* @param MemberBalance[]|null $balanceList
* @return LoyaltyMember
*/
public function setBalanceList(?array $balanceList): LoyaltyMember
{
$this->balanceList = $balanceList;
return $this;
}
/**
* Get user reward points
*
* @return int|null
*/
public function getBalancePoints()
{
foreach ($this->balanceList ?: [] as $item) {
if ('Reward Points' === $item->getName()) {
return $item->getPointsRemaining() ?? 0;
}
}
return 0;
}
/**
* @return string|null
*/
public function getUserName(): ?string
{
return $this->userName;
}
/**
* @param string|null $userName
* @return LoyaltyMember
*/
public function setUserName(?string $userName): LoyaltyMember
{
$this->userName = $userName;
return $this;
}
/**
* @return string|null
*/
public function getPassword(): ?string
{
return $this->password;
}
/**
* @param string|null $password
* @return LoyaltyMember
*/
public function setPassword(?string $password): LoyaltyMember
{
$this->password = $password;
return $this;
}
/**
* @return string|null
*/
public function getMiddleName(): ?string
{
return $this->middleName;
}
/**
* @param string|null $middleName
* @return LoyaltyMember
*/
public function setMiddleName(?string $middleName): LoyaltyMember
{
$this->middleName = $middleName;
return $this;
}
/**
* @return string|null
*/
public function getAddress1(): ?string
{
return $this->address1;
}
/**
* @param string|null $address1
* @return LoyaltyMember
*/
public function setAddress1(?string $address1): LoyaltyMember
{
$this->address1 = $address1;
return $this;
}
/**
* @return string|null
*/
public function getState(): ?string
{
return $this->state;
}
/**
* @param string|null $state
* @return LoyaltyMember
*/
public function setState(?string $state): LoyaltyMember
{
$this->state = $state;
return $this;
}
/**
* @return string|null
*/
public function getCity(): ?string
{
return $this->city;
}
/**
* @param string|null $city
* @return LoyaltyMember
*/
public function setCity(?string $city): LoyaltyMember
{
$this->city = $city;
return $this;
}
/**
* @return string|null
*/
public function getZipCode(): ?string
{
return $this->zipCode;
}
/**
* @param string|null $zipCode
* @return LoyaltyMember
*/
public function setZipCode(?string $zipCode): LoyaltyMember
{
$this->zipCode = $zipCode;
return $this;
}
/**
* @return bool|null
*/
public function getSendNewsletter(): ?bool
{
return $this->sendNewsletter;
}
/**
* @param bool|null $sendNewsletter
* @return LoyaltyMember
*/
public function setSendNewsletter(?bool $sendNewsletter): LoyaltyMember
{
$this->sendNewsletter = $sendNewsletter;
return $this;
}
/**
* @return int|null
*/
public function getEducationLevel(): ?int
{
return $this->educationLevel;
}
/**
* @param int|null $educationLevel
* @return LoyaltyMember
*/
public function setEducationLevel(?int $educationLevel): LoyaltyMember
{
$this->educationLevel = $educationLevel;
return $this;
}
/**
* @return int|null
*/
public function getHouseholdIncome(): ?int
{
return $this->householdIncome;
}
/**
* @param int|null $householdIncome
* @return LoyaltyMember
*/
public function setHouseholdIncome(?int $householdIncome): LoyaltyMember
{
$this->householdIncome = $householdIncome;
return $this;
}
/**
* @return int|null
*/
public function getPersonsInHousehold(): ?int
{
return $this->personsInHousehold;
}
/**
* @param int|null $personsInHousehold
* @return LoyaltyMember
*/
public function setPersonsInHousehold(?int $personsInHousehold): LoyaltyMember
{
$this->personsInHousehold = $personsInHousehold;
return $this;
}
/**
* @return \DateTimeImmutable|null
*/
public function getDateOfBirth(): ?\DateTimeImmutable
{
return $this->dateOfBirth;
}
/**
* @param \DateTimeImmutable|null $dateOfBirth
* @return LoyaltyMember
*/
public function setDateOfBirth(?\DateTimeImmutable $dateOfBirth): LoyaltyMember
{
$this->dateOfBirth = $dateOfBirth;
return $this;
}
/**
* @return string|null
*/
public function getStatus(): ?string
{
return $this->status;
}
/**
* @param string|null $status
* @return LoyaltyMember
*/
public function setStatus(?string $status): LoyaltyMember
{
$this->status = $status;
return $this;
}
/**
* @return string|null
*/
public function getSuburb(): ?string
{
return $this->suburb;
}
/**
* @param string|null $suburb
* @return LoyaltyMember
*/
public function setSuburb(?string $suburb): LoyaltyMember
{
$this->suburb = $suburb;
return $this;
}
/**
* @return string|null
*/
public function getGender(): ?string
{
return $this->gender;
}
/**
* @param string|null $gender
* @return LoyaltyMember
*/
public function setGender(?string $gender): LoyaltyMember
{
$this->gender = $gender;
return $this;
}
/**
* @return int|null
*/
public function getPickupComplex(): ?int
{
return $this->pickupComplex;
}
/**
* @param int|null $pickupComplex
* @return LoyaltyMember
*/
public function setPickupComplex(?int $pickupComplex): LoyaltyMember
{
$this->pickupComplex = $pickupComplex;
return $this;
}
/**
* @return int|null
*/
public function getPreferredComplex(): ?int
{
return $this->preferredComplex;
}
/**
* @param int|null $preferredComplex
* @return LoyaltyMember
*/
public function setPreferredComplex(?int $preferredComplex): LoyaltyMember
{
$this->preferredComplex = $preferredComplex;
return $this;
}
/**
* @return integer[]|null
*/
public function getPreferredComplexList(): ?array
{
return $this->preferredComplexList;
}
/**
* @param integer[]|null $preferredComplexList
* @return LoyaltyMember
*/
public function setPreferredComplexList(?array $preferredComplexList): LoyaltyMember
{
$this->preferredComplexList = $preferredComplexList;
return $this;
}
/**
* @return integer[]|null
*/
public function getPreferenceList(): ?array
{
return $this->preferenceList;
}
/**
* @param integer[]|null $preferenceList
* @return LoyaltyMember
*/
public function setPreferenceList(?array $preferenceList): LoyaltyMember
{
$this->preferenceList = $preferenceList;
return $this;
}
/**
* @return bool|null
*/
public function getOpera(): ?bool
{
return $this->opera;
}
/**
* @param bool|null $opera
* @return LoyaltyMember
*/
public function setOpera(?bool $opera): LoyaltyMember
{
$this->opera = $opera;
return $this;
}
/**
* @return bool|null
*/
public function getFamilyClubAndChildrenActions(): ?bool
{
return $this->familyClubAndChildrenActions;
}
/**
* @param bool|null $familyClubAndChildrenActions
* @return LoyaltyMember
*/
public function setFamilyClubAndChildrenActions(?bool $familyClubAndChildrenActions): LoyaltyMember
{
$this->familyClubAndChildrenActions = $familyClubAndChildrenActions;
return $this;
}
/**
* @return bool|null
*/
public function getRemembranceEventsService(): ?bool
{
return $this->remembranceEventsService;
}
/**
* @param bool|null $remembranceEventsService
* @return LoyaltyMember
*/
public function setRemembranceEventsService(?bool $remembranceEventsService): LoyaltyMember
{
$this->remembranceEventsService = $remembranceEventsService;
return $this;
}
/**
* @return string|null
*/
public function getClubName(): ?string
{
return $this->clubName;
}
/**
* @param string|null $clubName
* @return LoyaltyMember
*/
public function setClubName(?string $clubName): LoyaltyMember
{
$this->clubName = $clubName;
return $this;
}
/**
* @return bool|null
*/
public function getContactByThirdParty(): ?bool
{
return $this->contactByThirdParty;
}
/**
* @param bool|null $contactByThirdParty
* @return LoyaltyMember
*/
public function setContactByThirdParty(?bool $contactByThirdParty): LoyaltyMember
{
$this->contactByThirdParty = $contactByThirdParty;
return $this;
}
/**
* @return \DateTime|null
*/
public function getExpiryDate(): ?\DateTime
{
return $this->expiryDate;
}
/**
* @param \DateTime|null $expiryDate
* @return LoyaltyMember
*/
public function setExpiryDate(?\DateTime $expiryDate): LoyaltyMember
{
$this->expiryDate = $expiryDate;
return $this;
}
/**
* @return bool|null
*/
public function getWishToReceiveSMS(): ?bool
{
return $this->wishToReceiveSMS;
}
/**
* @param bool|null $wishToReceiveSMS
* @return LoyaltyMember
*/
public function setWishToReceiveSMS(?bool $wishToReceiveSMS): LoyaltyMember
{
$this->wishToReceiveSMS = $wishToReceiveSMS;
return $this;
}
/**
* @return string|null
*/
public function getWorkZipCode(): ?string
{
return $this->workZipCode;
}
/**
* @param string|null $workZipCode
* @return LoyaltyMember
*/
public function setWorkZipCode(?string $workZipCode): LoyaltyMember
{
$this->workZipCode = $workZipCode;
return $this;
}
/**
* @return string[]|null
*/
public function getCardList(): ?array
{
return $this->cardList;
}
/**
* @param string[]|null $cardList
* @return LoyaltyMember
*/
public function setCardList(?array $cardList): LoyaltyMember
{
$this->cardList = $cardList;
return $this;
}
/**
* @return integer[]|null
*/
public function getPreferredGenres(): ?array
{
return $this->preferredGenres;
}
/**
* @param array<int, string>|null $preferredGenres
* @return LoyaltyMember
*/
public function setPreferredGenres(?array $preferredGenres): LoyaltyMember
{
$this->preferredGenres = $preferredGenres;
return $this;
}
/**
* @return int|null
*/
public function getOccupation(): ?int
{
return $this->occupation;
}
/**
* @param int|null $occupation
* @return LoyaltyMember
*/
public function setOccupation(?int $occupation): LoyaltyMember
{
$this->occupation = $occupation;
return $this;
}
/**
* @return string|null
*/
public function getMaritalStatus(): ?string
{
return $this->maritalStatus;
}
/**
* @param string|null $maritalStatus
* @return LoyaltyMember
*/
public function setMaritalStatus(?string $maritalStatus): LoyaltyMember
{
$this->maritalStatus = $maritalStatus;
return $this;
}
/**
* @return string|null
*/
public function getMailingFrequency(): ?string
{
return $this->mailingFrequency;
}
/**
* @param string|null $mailingFrequency
* @return LoyaltyMember
*/
public function setMailingFrequency(?string $mailingFrequency): LoyaltyMember
{
$this->mailingFrequency = $mailingFrequency;
return $this;
}
/**
* @return string|null
*/
public function getPin(): ?string
{
return $this->pin;
}
/**
* @param string|null $pin
* @return LoyaltyMember
*/
public function setPin(?string $pin): LoyaltyMember
{
$this->pin = $pin;
return $this;
}
/**
* @return \App\Entity\Local\ValueObject\ExpiryPoint[]|null
*/
public function getExpiryPointsList(): ?array
{
return $this->expiryPointsList;
}
/**
* @param \App\Entity\Local\ValueObject\ExpiryPoint[]|null $expiryPointsList
* @return LoyaltyMember
*/
public function setExpiryPointsList(?array $expiryPointsList): LoyaltyMember
{
$this->expiryPointsList = $expiryPointsList;
return $this;
}
/**
* @return int|null
*/
public function getMemberLevelId(): ?int
{
return $this->memberLevelId;
}
/**
* @param int|null $memberLevelId
* @return LoyaltyMember
*/
public function setMemberLevelId(?int $memberLevelId): LoyaltyMember
{
$this->memberLevelId = $memberLevelId;
return $this;
}
/**
* @return string|null
*/
public function getMemberLevelName(): ?string
{
return $this->memberLevelName;
}
/**
* @param string|null $memberLevelName
* @return LoyaltyMember
*/
public function setMemberLevelName(?string $memberLevelName): LoyaltyMember
{
$this->memberLevelName = $memberLevelName;
return $this;
}
/**
* @return \DateTime|null
*/
public function getLoyaltySessionExpiry(): ?\DateTime
{
return $this->loyaltySessionExpiry;
}
/**
* @param \DateTime|null $loyaltySessionExpiry
* @return LoyaltyMember
*/
public function setLoyaltySessionExpiry(?\DateTime $loyaltySessionExpiry): LoyaltyMember
{
$this->loyaltySessionExpiry = $loyaltySessionExpiry;
return $this;
}
/**
* @return string
*/
public function getLoyaltySessionToken(): ?string
{
return $this->loyaltySessionToken;
}
/**
* @param string $loyaltySessionToken
*
* @return LoyaltyMember
*/
public function setLoyaltySessionToken(string $loyaltySessionToken): LoyaltyMember
{
$this->loyaltySessionToken = $loyaltySessionToken;
return $this;
}
/**
* @return bool|null
*/
public function getGiftCard(): ?bool
{
return $this->giftCard;
}
/**
* @param bool|null $giftCard
* @return LoyaltyMember
*/
public function setGiftCard(?bool $giftCard): LoyaltyMember
{
$this->giftCard = $giftCard;
return $this;
}
/**
* @return string|null
*/
public function getGiftCardBalance(): ?string
{
return $this->giftCardBalance;
}
/**
* @param string|null $giftCardBalance
* @return LoyaltyMember
*/
public function setGiftCardBalance(?string $giftCardBalance): LoyaltyMember
{
$this->giftCardBalance = $giftCardBalance;
return $this;
}
/**
* @return \DateTime|null
*/
public function getisBannedFromMakingUnpaidBookingsUntil(): ?\DateTime
{
return $this->isBannedFromMakingUnpaidBookingsUntil;
}
/**
* @param \DateTime|null $isBannedFromMakingUnpaidBookingsUntil
* @return LoyaltyMember
*/
public function setIsBannedFromMakingUnpaidBookingsUntil(
?\DateTime $isBannedFromMakingUnpaidBookingsUntil
): LoyaltyMember {
$this->isBannedFromMakingUnpaidBookingsUntil = $isBannedFromMakingUnpaidBookingsUntil;
return $this;
}
/**
* @return bool|null
*/
public function getMembershipActivated(): ?bool
{
return $this->membershipActivated;
}
/**
* @param bool|null $membershipActivated
* @return LoyaltyMember
*/
public function setMembershipActivated(?bool $membershipActivated): LoyaltyMember
{
$this->membershipActivated = $membershipActivated;
return $this;
}
/**
* @return string|null
*/
public function getMemberItemId(): ?string
{
return $this->memberItemId;
}
/**
* @param string|null $memberItemId
* @return LoyaltyMember
*/
public function setMemberItemId(?string $memberItemId): LoyaltyMember
{
$this->memberItemId = $memberItemId;
return $this;
}
/**
* @return string|null
*/
public function getExternalID(): ?string
{
return $this->externalID;
}
/**
* @param string|null $externalID
* @return LoyaltyMember
*/
public function setExternalID(?string $externalID): LoyaltyMember
{
$this->externalID = $externalID;
return $this;
}
/**
* @return string|null
*/
public function getNationalID(): ?string
{
return $this->nationalID;
}
/**
* @param string|null $nationalID
* @return LoyaltyMember
*/
public function setNationalID(?string $nationalID): LoyaltyMember
{
$this->nationalID = $nationalID;
return $this;
}
/**
* @return PushNotificationSubscription|null
*/
public function getPushNotificationSubscription(): ?PushNotificationSubscription
{
return $this->pushNotificationSubscription;
}
/**
* @param PushNotificationSubscription|null $pushNotificationSubscription
* @return LoyaltyMember
*/
public function setPushNotificationSubscription(?PushNotificationSubscription $pushNotificationSubscription
): LoyaltyMember {
$this->pushNotificationSubscription = $pushNotificationSubscription;
return $this;
}
/**
* @return bool|null
*/
public function getisAnonymous(): ?bool
{
return $this->isAnonymous;
}
/**
* @param bool|null $isAnonymous
* @return LoyaltyMember
*/
public function setIsAnonymous(?bool $isAnonymous): LoyaltyMember
{
$this->isAnonymous = $isAnonymous;
return $this;
}
/**
* @return bool|null
*/
public function getValidatedFiscaliazionLaw(): ?bool
{
return $this->validatedFiscaliazionLaw;
}
/**
* @param bool|null $validatedFiscaliazionLaw
* @return LoyaltyMember
*/
public function setValidatedFiscaliazionLaw(?bool $validatedFiscaliazionLaw): LoyaltyMember
{
$this->validatedFiscaliazionLaw = $validatedFiscaliazionLaw;
return $this;
}
/**
* @return string|null
*/
public function getMemberLanguageIETFCode(): ?string
{
return $this->memberLanguageIETFCode;
}
/**
* @param string|null $memberLanguageIETFCode
* @return LoyaltyMember
*/
public function setMemberLanguageIETFCode(?string $memberLanguageIETFCode): LoyaltyMember
{
$this->memberLanguageIETFCode = $memberLanguageIETFCode;
return $this;
}
/**
* @return string|null
*/
public function getFirstAndLastNames(): ?string
{
return $this->getFullName();
}
/**
* @return \DateTimeImmutable
*/
public function getModifiedAt(): ?\DateTimeImmutable
{
return $this->modifiedAt;
}
/**
* @param \DateTimeImmutable $modifiedAt
*
* @return LoyaltyMember
*/
public function setModifiedAt(\DateTimeImmutable $modifiedAt): LoyaltyMember
{
$this->modifiedAt = $modifiedAt;
return $this;
}
/**
* @return \DateTimeImmutable
*/
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
/**
* @param \DateTimeImmutable $createdAt
*
* @return LoyaltyMember
*/
public function setCreatedAt(\DateTimeImmutable $createdAt): LoyaltyMember
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @return Restrictions
*/
public function getRestrictions(): ?Restrictions
{
return $this->restrictions;
}
/**
* @param Restrictions $restrictions
*
* @return LoyaltyMember
*/
public function setRestrictions(Restrictions $restrictions): LoyaltyMember
{
$this->restrictions = $restrictions;
return $this;
}
/**
* @ORM\PrePersist()
*/
public function onPrePersist()
{
$this->setCreatedAt(new \DateTimeImmutable());
$this->setModifiedAt(new \DateTimeImmutable());
}
/**
* @ORM\PreUpdate()
*/
public function onPreUpdate()
{
$this->setModifiedAt(new \DateTimeImmutable());
}
}