src/Entity/LineTypeGroup.php line 28

Open in your IDE?
  1. <?php
  2. /**
  3.  * @license SILK SOFTWARE HOUSE SP Z O O
  4.  */
  5. namespace App\Entity;
  6. use App\Entity\Traits\IdTrait;
  7. use App\Entity\Traits\TimePreUpdateTrait;
  8. use App\Entity\Traits\TimeTrait;
  9. use App\Repository\MeasurementSettingRepository;
  10. use Doctrine\Common\Collections\ArrayCollection;
  11. use Doctrine\Common\Collections\Collection;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use DateTime;
  14. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  15. use Symfony\Component\Validator\Constraints as Assert;
  16. /**
  17.  * Class LineTypeGroup.
  18.  *
  19.  * @ORM\Table("line_type_groups")
  20.  * @ORM\Entity(repositoryClass="App\Repository\LineTypeGroupRepository")
  21.  * @ORM\HasLifecycleCallbacks()
  22.  *
  23.  * @UniqueEntity({"name", "customer"})
  24.  */
  25. class LineTypeGroup
  26. {
  27.     use IdTrait;
  28.     use TimeTrait;
  29.     use TimePreUpdateTrait;
  30.     /**
  31.      * Line type group.
  32.      *
  33.      * @var string
  34.      *
  35.      * @ORM\Column(name="name", type="text", nullable=false, options={"comment": "Group name."})
  36.      *
  37.      * @Assert\NotBlank()
  38.      */
  39.     private string $name '';
  40.     /**
  41.      * Customer.
  42.      *
  43.      * @var Customer|null
  44.      *
  45.      * @ORM\ManyToOne(targetEntity="App\Entity\Customer")
  46.      * @ORM\JoinColumn(name="customer_id", nullable=true)
  47.      */
  48.     private ?Customer $customer null;
  49.     /**
  50.      * Measurement settings.
  51.      *
  52.      * @var MeasurementSetting[]|ArrayCollection
  53.      *
  54.      * @ORM\OneToMany(targetEntity="App\Entity\MeasurementSetting", mappedBy="lineTypeGroup", cascade={"persist"})
  55.      */
  56.     private $settings;
  57.     /**
  58.      * Line types.
  59.      *
  60.      * @var LineType[]|ArrayCollection
  61.      *
  62.      * @ORM\OneToMany(targetEntity="App\Entity\LineType", mappedBy="lineTypeGroup", cascade={"persist", "remove"})
  63.      * @ORM\OrderBy({"id": "asc"})
  64.      */
  65.     private $lineTypes;
  66.     /**
  67.      * Clone line types from this group.
  68.      *
  69.      * @var LineTypeGroup|null
  70.      */
  71.     private ?self $loadFrom null;
  72.     /**
  73.      * LineTypeGroup constructor.
  74.      */
  75.     public function __construct()
  76.     {
  77.         $this->settings = new ArrayCollection();
  78.         $this->lineTypes = new ArrayCollection();
  79.     }
  80.     /**
  81.      * Get name.
  82.      *
  83.      * @return string
  84.      */
  85.     public function getName(): string
  86.     {
  87.         return $this->name;
  88.     }
  89.     /**
  90.      * Set name.
  91.      *
  92.      * @param string $name
  93.      *
  94.      * @return LineTypeGroup
  95.      */
  96.     public function setName(string $name): LineTypeGroup
  97.     {
  98.         $this->name $name;
  99.         return $this;
  100.     }
  101.     /**
  102.      * Get customer.
  103.      *
  104.      * @return Customer|null
  105.      */
  106.     public function getCustomer(): ?Customer
  107.     {
  108.         return $this->customer;
  109.     }
  110.     /**
  111.      * Set customer.
  112.      *
  113.      * @param Customer|null $customer
  114.      *
  115.      * @return LineTypeGroup
  116.      */
  117.     public function setCustomer(?Customer $customer): LineTypeGroup
  118.     {
  119.         $this->customer $customer;
  120.         return $this;
  121.     }
  122.     /**
  123.      * Get settings.
  124.      *
  125.      * @return MeasurementSetting[]|ArrayCollection
  126.      */
  127.     public function getSettings()
  128.     {
  129.         return $this->settings;
  130.     }
  131.     /**
  132.      * Get line types.
  133.      *
  134.      * @return LineType[]|ArrayCollection
  135.      */
  136.     public function getLineTypes()
  137.     {
  138.         return $this->lineTypes;
  139.     }
  140.     /**
  141.      * Set line types.
  142.      *
  143.      * @param LineType[]|ArrayCollection $lineTypes
  144.      *
  145.      * @return LineTypeGroup
  146.      */
  147.     public function setLineTypes($lineTypes): LineTypeGroup
  148.     {
  149.         $this->lineTypes $lineTypes;
  150.         return $this;
  151.     }
  152.     /**
  153.      * To string.
  154.      *
  155.      * @return string
  156.      */
  157.     public function __toString(): string
  158.     {
  159.         return $this->name;
  160.     }
  161.     /**
  162.      * Get load from.
  163.      *
  164.      * @return LineTypeGroup|null
  165.      */
  166.     public function getLoadFrom(): ?LineTypeGroup
  167.     {
  168.         return $this->loadFrom;
  169.     }
  170.     /**
  171.      * Set load from.
  172.      *
  173.      * @param LineTypeGroup|null $loadFrom
  174.      *
  175.      * @return LineTypeGroup
  176.      */
  177.     public function setLoadFrom(?LineTypeGroup $loadFrom): LineTypeGroup
  178.     {
  179.         $this->loadFrom $loadFrom;
  180.         return $this;
  181.     }
  182. }