src/Entity/PointsCatalog/CatalogGiftCategory.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Entity\PointsCatalog;
  3. use App\Annotation\SiteAware;
  4. use App\Entity\AbstractBase;
  5. use App\Entity\Interfaces\SiteInterface;
  6. use App\Entity\MiniAbstractBase;
  7. use App\Entity\Traits\NameTrait;
  8. use App\Entity\Traits\PositionTrait;
  9. use App\Entity\Traits\PublishedTrait;
  10. use App\Entity\Traits\SiteTrait;
  11. use App\Entity\User;
  12. use App\Entity\UserGroup;
  13. use App\Persistence\Model\UserGroupAccessType;
  14. use App\Repository\PointsCatalog\CatalogGiftCategoryRepository;
  15. use Doctrine\Common\Collections\ArrayCollection;
  16. use Doctrine\Common\Collections\Collection;
  17. use Doctrine\ORM\Mapping as ORM;
  18. use Gedmo\Mapping\Annotation as Gedmo;
  19. use Symfony\Component\Validator\Constraints as Assert;
  20. /**
  21.  * @ORM\Table(name="vulco_points_catalog_gift_category", indexes={@ORM\Index(name="catalog_gift_category_site_idx", columns={"site"})})
  22.  * @ORM\Entity(repositoryClass=CatalogGiftCategoryRepository::class)
  23.  * @Gedmo\SoftDeleteable(fieldName="removedAt", timeAware=false)
  24.  * @SiteAware(siteFieldName="site")
  25.  */
  26. class CatalogGiftCategory extends AbstractBase implements SiteInterface
  27. {
  28.     use NameTrait;
  29.     use PositionTrait;
  30.     use PublishedTrait;
  31.     use SiteTrait;
  32.     /**
  33.      * @ORM\Column(type="string", length=255)
  34.      * @Assert\NotBlank()
  35.      */
  36.     private string $name;
  37.     /**
  38.      * @ORM\Column(type="integer")
  39.      * @Assert\NotBlank()
  40.      */
  41.     private int $position;
  42.     /**
  43.      * @ORM\Column(type="boolean", nullable=true)
  44.      */
  45.     private ?bool $vulcoClub null;
  46.     /**
  47.      * @ORM\ManyToMany(targetEntity="App\Entity\UserGroup", inversedBy="catalogGiftCategories")
  48.      * @ORM\JoinTable(name="vulco_points_catalog_gift_categories_user_groups",
  49.      *     joinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")},
  50.      *     inverseJoinColumns={@ORM\JoinColumn(name="user_group_id", referencedColumnName="id")}
  51.      * )
  52.      */
  53.     private ?Collection $userGroups;
  54.     /**
  55.      * @ORM\ManyToMany(targetEntity="App\Entity\User")
  56.      * @ORM\JoinTable(name="vulco_points_catalog_gift_categories_users",
  57.      *     joinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")},
  58.      *     inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
  59.      * )
  60.      */
  61.     private ?Collection $users;
  62.     /**
  63.      * @ORM\Column(type="user_group_access_type", nullable=false, options={"ignore"})
  64.      */
  65.     private UserGroupAccessType $userGroupAccessType;
  66.     /**
  67.      * @ORM\Column(type="user_group_access_type", nullable=false, options={"ignore"})
  68.      */
  69.     private UserGroupAccessType $userAccessType;
  70.     public function __construct()
  71.     {
  72.         $this->userGroups = new ArrayCollection();
  73.         $this->users = new ArrayCollection();
  74.         $this->userGroupAccessType = new UserGroupAccessType(UserGroupAccessType::getDefaultCode());
  75.         $this->userAccessType = new UserGroupAccessType(UserGroupAccessType::getDefaultCode());
  76.     }
  77.     public function isVulcoClub(): ?bool
  78.     {
  79.         return $this->vulcoClub;
  80.     }
  81.     public function getVulcoClub(): ?bool
  82.     {
  83.         return $this->isVulcoClub();
  84.     }
  85.     public function setVulcoClub(?bool $vulcoClub): self
  86.     {
  87.         $this->vulcoClub $vulcoClub;
  88.         return $this;
  89.     }
  90.     public function getUserGroups(): ?Collection
  91.     {
  92.         return $this->userGroups;
  93.     }
  94.     public function setUserGroups(?Collection $userGroups): self
  95.     {
  96.         $this->userGroups $userGroups;
  97.         return $this;
  98.     }
  99.     public function addUserGroup(UserGroup $userGroup): self
  100.     {
  101.         if (!$this->userGroups->contains($userGroup)) {
  102.             $this->userGroups->add($userGroup);
  103.             $userGroup->addCatalogGiftCategory($this);
  104.         }
  105.         return $this;
  106.     }
  107.     public function removeUserGroup(UserGroup $userGroup): self
  108.     {
  109.         if ($this->userGroups->contains($userGroup)) {
  110.             $this->userGroups->removeElement($userGroup);
  111.         }
  112.         return $this;
  113.     }
  114.     public function getUsers(): ?Collection
  115.     {
  116.         return $this->users;
  117.     }
  118.     public function setUsers(?Collection $users): self
  119.     {
  120.         $this->users $users;
  121.         return $this;
  122.     }
  123.     public function addUser(User $user): self
  124.     {
  125.         if (!$this->users->contains($user)) {
  126.             $this->users->add($user);
  127.         }
  128.         return $this;
  129.     }
  130.     public function removeUser(User $user): self
  131.     {
  132.         if ($this->users->contains($user)) {
  133.             $this->users->removeElement($user);
  134.         }
  135.         return $this;
  136.     }
  137.     public function getUserGroupAccessType(): UserGroupAccessType
  138.     {
  139.         return $this->userGroupAccessType;
  140.     }
  141.     public function setUserGroupAccessType(UserGroupAccessType $userGroupAccessType): self
  142.     {
  143.         $this->userGroupAccessType $userGroupAccessType;
  144.         return $this;
  145.     }
  146.     public function getUserAccessType(): UserGroupAccessType
  147.     {
  148.         return $this->userAccessType;
  149.     }
  150.     public function setUserAccessType(UserGroupAccessType $userAccessType): self
  151.     {
  152.         $this->userAccessType $userAccessType;
  153.         return $this;
  154.     }
  155.     public function __toString(): string
  156.     {
  157.         return $this->name $this->getName() : MiniAbstractBase::DEFAULT_EMPTY_STRING;
  158.     }
  159. }