src/Entity/BuyersGroup.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Sale;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7.  * @ORM\Entity()
  8.  *
  9.  * @ORM\Table(name="buyers_group")
  10.  */
  11. class BuyersGroup implements \Stringable
  12. {
  13.     public const PUBLIC_GROUP 'Tous B2C';
  14.     public const ONLINE_GROUP 'Online';
  15.     /**
  16.      * @ORM\Id
  17.      *
  18.      * @ORM\GeneratedValue(strategy="AUTO")
  19.      *
  20.      * @ORM\Column(type="bigint")
  21.      */
  22.     protected $id;
  23.     /**
  24.      * @ORM\Column(type="string", length=255, unique=true)
  25.      */
  26.     protected $name;
  27.     /**
  28.      * @ORM\ManyToMany(targetEntity="App\Entity\User", inversedBy="buyersGroups", cascade={"persist"})
  29.      */
  30.     protected $users;
  31.     /**
  32.      * @ORM\ManyToMany(targetEntity="App\Entity\Sale", mappedBy="buyersGroups")
  33.      */
  34.     protected $sales;
  35.     /**
  36.      * @ORM\Column(type="string", length=18, nullable=true)
  37.      */
  38.     protected $salesforceId;
  39.     /**
  40.      * Constructor.
  41.      */
  42.     public function __construct()
  43.     {
  44.         $this->users = new ArrayCollection();
  45.         $this->sales = new ArrayCollection();
  46.     }
  47.     /**
  48.      * __toString overriding.
  49.      */
  50.     public function __toString(): string
  51.     {
  52.         return (string) $this->getName();
  53.     }
  54.     /**
  55.      * Set id.
  56.      *
  57.      * @param string $id
  58.      */
  59.     public function setId($id): void
  60.     {
  61.         $this->id $id;
  62.     }
  63.     /**
  64.      * Get id.
  65.      *
  66.      * @return string
  67.      */
  68.     public function getId()
  69.     {
  70.         return $this->id;
  71.     }
  72.     /**
  73.      * Set name.
  74.      *
  75.      * @param string $name
  76.      */
  77.     public function setName($name): void
  78.     {
  79.         $this->name $name;
  80.     }
  81.     /**
  82.      * Get name.
  83.      *
  84.      * @return string
  85.      */
  86.     public function getName()
  87.     {
  88.         return $this->name;
  89.     }
  90.     /**
  91.      * Add users.
  92.      */
  93.     public function addUser(User $user): void
  94.     {
  95.         if (!$this->users->contains($user)) {
  96.             $user->addBuyersGroup($this);
  97.             $this->users[] = $user;
  98.         }
  99.     }
  100.     public function removeUser(User $user): void
  101.     {
  102.         if ($this->users->contains($user)) {
  103.             $user->removeBuyersGroup($this);
  104.             $this->users->removeElement($user);
  105.         }
  106.     }
  107.     /**
  108.      * Get users.
  109.      *
  110.      * @return Doctrine\Common\Collections\Collection
  111.      */
  112.     public function getUsers()
  113.     {
  114.         return $this->users;
  115.     }
  116.     /**
  117.      * Add sale.
  118.      */
  119.     public function addSale(Sale $sale): void
  120.     {
  121.         $this->sales[] = $sale;
  122.     }
  123.     /**
  124.      * Get sales.
  125.      *
  126.      * @return Doctrine\Common\Collections\Collection
  127.      */
  128.     public function getSales()
  129.     {
  130.         return $this->sales;
  131.     }
  132.     /**
  133.      * Set the 15 or 18 characters long SF ID of this group.
  134.      *
  135.      * @param string $sfId The SF ID
  136.      */
  137.     public function setSalesforceId($sfId): void
  138.     {
  139.         $this->salesforceId $sfId;
  140.     }
  141.     /**
  142.      * Get the SF ID of this group.
  143.      *
  144.      * @return string The SF ID
  145.      */
  146.     public function getSalesforceId()
  147.     {
  148.         return $this->salesforceId;
  149.     }
  150. }