<?php
declare(strict_types=1);
namespace App\Entity\Local\DTO;
use App\Entity\Vista\LoyaltyMember;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
class UserCRUDRequest
{
/**
* @Groups({"update-preferences"})
* @Assert\Valid()
* @var LoyaltyMember
*/
protected $loyaltyMember;
/**
* @Groups({"update-preferences"})
* @var string
*/
protected $userSessionId;
/**
* @Groups({"update-preferences"})
* @var boolean|null
*/
protected $updatePreferences = false;
/**
* @return LoyaltyMember|null
*/
public function getLoyaltyMember(): ?LoyaltyMember
{
return $this->loyaltyMember;
}
/**
* @param \App\Entity\Vista\LoyaltyMember $loyaltyMember
*
* @return UserCRUDRequest
*/
public function setLoyaltyMember(LoyaltyMember $loyaltyMember): UserCRUDRequest
{
$preferenceList = $loyaltyMember->getPreferenceList() ?: [];
array_walk($preferenceList, function (&$value) {
$value = (string) $value;
});
$preferenceList[] = '6';
$loyaltyMember->setPreferenceList(array_values(array_unique($preferenceList)));
$this->loyaltyMember = $loyaltyMember;
return $this;
}
/**
* @return string
*/
public function getUserSessionId(): ?string
{
return $this->userSessionId;
}
/**
* @param string $userSessionId
*
* @return UserCRUDRequest
*/
public function setUserSessionId(string $userSessionId): UserCRUDRequest
{
$this->userSessionId = $userSessionId;
return $this;
}
/**
* @return bool|null
*/
public function getUpdatePreferences(): ?bool
{
return $this->updatePreferences;
}
/**
* @param bool|null $updatePreferences
* @return UserCRUDRequest
*/
public function setUpdatePreferences(?bool $updatePreferences): UserCRUDRequest
{
$this->updatePreferences = $updatePreferences;
return $this;
}
}