|
|
|
|
|
|
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
namespace Lc\CaracoleBundle\Model\User; |
|
|
|
|
|
|
|
|
|
|
|
use Doctrine\ORM\Mapping as ORM; |
|
|
|
|
|
use Doctrine\Common\Collections\ArrayCollection; |
|
|
|
|
|
use Doctrine\Common\Collections\Collection; |
|
|
|
|
|
use Lc\CaracoleBundle\Doctrine\Extension\FilterMerchantInterface; |
|
|
|
|
|
use Lc\CaracoleBundle\Model\Merchant\MerchantInterface; |
|
|
|
|
|
use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity; |
|
|
|
|
|
use Lc\SovBundle\Doctrine\Pattern\AbstractLightEntity; |
|
|
|
|
|
use Lc\SovBundle\Model\User\UserInterface; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @ORM\MappedSuperclass() |
|
|
|
|
|
*/ |
|
|
|
|
|
abstract class GroupUserModel extends AbstractLightEntity implements FilterMerchantInterface |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @ORM\Column(type="string", length=255) |
|
|
|
|
|
*/ |
|
|
|
|
|
protected $title; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @ORM\ManyToOne(targetEntity="Lc\CaracoleBundle\Model\Merchant\MerchantInterface", inversedBy="groupUsers") |
|
|
|
|
|
* @ORM\JoinColumn(nullable=false) |
|
|
|
|
|
*/ |
|
|
|
|
|
protected $merchant; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @ORM\ManyToMany(targetEntity="Lc\SovBundle\Model\User\UserInterface", mappedBy="groupUsers") |
|
|
|
|
|
*/ |
|
|
|
|
|
protected $users; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function __toString() |
|
|
|
|
|
{ |
|
|
|
|
|
return $this->getTitle(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function __construct() |
|
|
|
|
|
{ |
|
|
|
|
|
$this->users = new ArrayCollection(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getTitle(): ?string |
|
|
|
|
|
{ |
|
|
|
|
|
return $this->title; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function setTitle(string $title): self |
|
|
|
|
|
{ |
|
|
|
|
|
$this->title = $title; |
|
|
|
|
|
|
|
|
|
|
|
return $this; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getMerchant(): ?MerchantInterface |
|
|
|
|
|
{ |
|
|
|
|
|
return $this->merchant; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function setMerchant(?MerchantInterface $merchant): self |
|
|
|
|
|
{ |
|
|
|
|
|
$this->merchant = $merchant; |
|
|
|
|
|
|
|
|
|
|
|
return $this; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function addUser(UserModel $user): self |
|
|
|
|
|
{ |
|
|
|
|
|
if (!$this->users->contains($user)) { |
|
|
|
|
|
$this->users[] = $user; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $this; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @return Collection|UserInterface[] |
|
|
|
|
|
*/ |
|
|
|
|
|
public function getUsers(): Collection |
|
|
|
|
|
{ |
|
|
|
|
|
return $this->users; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function removeUser(UserInterface $user): self |
|
|
|
|
|
{ |
|
|
|
|
|
if ($this->users->contains($user)) { |
|
|
|
|
|
$this->users->removeElement($user); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $this; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |