src/Entity/Certificates.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CertificatesRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Serializer\Annotation\Groups;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. /**
  10.  * @ORM\Entity(repositoryClass=CertificatesRepository::class)
  11.  * @UniqueEntity(
  12.  *        fields={"name"},
  13.  *        message="Certificate with name (%s) is already registered"
  14.  *   )
  15.  */
  16. class Certificates
  17. {
  18.     /**
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue
  21.      * @ORM\Column(type="integer")
  22.      * @Groups({
  23.      *     "certificates.base",
  24.      *     "partner.certificate.manage",
  25.      *     "partner.manage.base",
  26.      *     "project.certificates",
  27.      *     "partner.joined.projects.depended.certificates",
  28.      *     "stakeholder.selected.core.project.manage",
  29.      *     "worker.manage.base",
  30.      *     "worker.certificate.manage",
  31.      *     "selected.partner.project.for.worker",
  32.      *
  33.      *     "certificate@core"
  34.      * })
  35.      */
  36.     private $id;
  37.     /**
  38.      * @ORM\Column(type="string", length=255)
  39.      * @Groups({
  40.      *     "certificates.base",
  41.      *     "partner.certificate.manage",
  42.      *     "partner.manage.base",
  43.      *     "project.certificates",
  44.      *     "partner.joined.projects.depended.certificates",
  45.      *     "stakeholder.selected.core.project.manage",
  46.      *     "worker.manage.base",
  47.      *     "worker.certificate.manage",
  48.      *     "selected.partner.project.for.worker",
  49.      *
  50.      *     "certificate@core"
  51.      *
  52.      * })
  53.      */
  54.     private $name;
  55.     /**
  56.      * @ORM\Column(type="string", length=255, nullable=true )
  57.      * @Groups({
  58.      *     "certificates.base",
  59.      *     "partner.manage.base",
  60.      *     "project.certificates",
  61.      *     "partner.joined.projects.depended.certificates",
  62.      *     "stakeholder.selected.core.project.manage",
  63.      *     "worker.manage.base",
  64.      *     "worker.certificate.manage",
  65.      *     "selected.partner.project.for.worker",
  66.      *
  67.      *     "certificate@core"
  68.      *
  69.      * })
  70.      */
  71.     private $color;
  72.     /**
  73.      * @ORM\OneToMany(targetEntity=WorkerCertificates::class, mappedBy="certificate")
  74.      */
  75.     private $workerCertificates;
  76.     /**
  77.      * @ORM\ManyToOne(targetEntity=CertificatesGroups::class, inversedBy="certificates")
  78.      * @ORM\JoinColumn(nullable=false)
  79.      * @Groups({
  80.      *     "certificate.group.base",
  81.      *
  82.      *     "certificate@groups"
  83.      * })
  84.      */
  85.     private $groups;
  86.     /**
  87.      * @ORM\OneToMany(targetEntity=PartnerCertificates::class, mappedBy="certificate")
  88.      */
  89.     private $partnerCertificates;
  90.     /**
  91.      * @ORM\ManyToMany(targetEntity=ProjectStakeholders::class, mappedBy="dependent_certificates")
  92.      */
  93.     private $project_stakeholders;
  94.     /**
  95.      * @ORM\ManyToMany(targetEntity=Projects::class, mappedBy="dependent_certificates")
  96.      */
  97.     private $projects;
  98.     /**
  99.      * @ORM\ManyToOne(targetEntity=CertificateEligibilities::class, inversedBy="certificates")
  100.      * @Groups({"certificates.base", "project.certificates", "partner.joined.projects.depended.certificates.eligibility"})
  101.      * @ORM\JoinColumn(nullable=true)
  102.      */
  103.     private $certificate_eligibility;
  104.     /**
  105.      * @ORM\Column(type="datetime_immutable", nullable=true)
  106.      */
  107.     private $created_at;
  108.     public function __construct()
  109.     {
  110.         $this->workerCertificates = new ArrayCollection();
  111.         $this->partnerCertificates = new ArrayCollection();
  112.         $this->project_stakeholders = new ArrayCollection();
  113.         $this->projects = new ArrayCollection();
  114.     }
  115.     public function getId(): ?int
  116.     {
  117.         return $this->id;
  118.     }
  119.     public function getName(): ?string
  120.     {
  121.         return $this->name;
  122.     }
  123.     public function setName(string $name): self
  124.     {
  125.         $this->name $name;
  126.         return $this;
  127.     }
  128.     public function getColor(): ?string
  129.     {
  130.         return $this->color;
  131.     }
  132.     public function setColor(string $color): self
  133.     {
  134.         $this->color $color;
  135.         return $this;
  136.     }
  137.     /**
  138.      * @return Collection<int, WorkerCertificates>
  139.      */
  140. //    public function getWorkerCertificates(): Collection
  141. //    {
  142. //        return $this->workerCertificates;
  143. //    }
  144.     public function addWorkerCertificate(WorkerCertificates $workerCertificate): self
  145.     {
  146.         if (!$this->workerCertificates->contains($workerCertificate)) {
  147.             $this->workerCertificates[] = $workerCertificate;
  148.             $workerCertificate->setCertificate($this);
  149.         }
  150.         return $this;
  151.     }
  152.     public function removeWorkerCertificate(WorkerCertificates $workerCertificate): self
  153.     {
  154.         if ($this->workerCertificates->removeElement($workerCertificate)) {
  155.             // set the owning side to null (unless already changed)
  156.             if ($workerCertificate->getCertificate() === $this) {
  157.                 $workerCertificate->setCertificate(null);
  158.             }
  159.         }
  160.         return $this;
  161.     }
  162. //    public function getGroups(): ?CertificatesGroups
  163. //    {
  164. //        return $this->groups;
  165. //    }
  166.     public function setGroups(?CertificatesGroups $groups): self
  167.     {
  168.         $this->groups $groups;
  169.         return $this;
  170.     }
  171.     /**
  172.      * @return Collection<int, PartnerCertificates>
  173.      */
  174. //    public function getPartnerCertificates(): Collection
  175. //    {
  176. //        return $this->partnerCertificates;
  177. //    }
  178.     public function addPartnerCertificate(PartnerCertificates $partnerCertificate): self
  179.     {
  180.         if (!$this->partnerCertificates->contains($partnerCertificate)) {
  181.             $this->partnerCertificates[] = $partnerCertificate;
  182.             $partnerCertificate->setCertificate($this);
  183.         }
  184.         return $this;
  185.     }
  186.     public function removePartnerCertificate(PartnerCertificates $partnerCertificate): self
  187.     {
  188.         if ($this->partnerCertificates->removeElement($partnerCertificate)) {
  189.             // set the owning side to null (unless already changed)
  190.             if ($partnerCertificate->getCertificate() === $this) {
  191.                 $partnerCertificate->setCertificate(null);
  192.             }
  193.         }
  194.         return $this;
  195.     }
  196.     /**
  197.      * @return Collection<int, ProjectStakeholders>
  198.      */
  199. //    public function getProjectStakeholders(): Collection
  200. //    {
  201. //        return $this->projectStakeholders;
  202. //    }
  203.     public function addProjectStakeholder(ProjectStakeholders $projectStakeholder): self
  204.     {
  205.         if (!$this->project_stakeholders->contains($projectStakeholder)) {
  206.             $this->project_stakeholders[] = $projectStakeholder;
  207.             $projectStakeholder->addDependentCertificate($this);
  208.         }
  209.         return $this;
  210.     }
  211.     public function removeProjectStakeholder(ProjectStakeholders $projectStakeholder): self
  212.     {
  213.         if ($this->project_stakeholders->removeElement($projectStakeholder)) {
  214.             $projectStakeholder->removeDependentCertificate($this);
  215.         }
  216.         return $this;
  217.     }
  218.     /**
  219.      * @return Collection<int, Projects>
  220.      */
  221. //    public function getProjects(): Collection
  222. //    {
  223. //        return $this->projects;
  224. //    }
  225.     public function addProject(Projects $project): self
  226.     {
  227.         if (!$this->projects->contains($project)) {
  228.             $this->projects[] = $project;
  229.             $project->addDependentCertificate($this);
  230.         }
  231.         return $this;
  232.     }
  233.     public function removeProject(Projects $project): self
  234.     {
  235.         if ($this->projects->removeElement($project)) {
  236.             $project->removeDependentCertificate($this);
  237.         }
  238.         return $this;
  239.     }
  240.     public function getCertificateEligibility(): ?CertificateEligibilities
  241.     {
  242.         return $this->certificate_eligibility;
  243.     }
  244.     public function setCertificateEligibility(?CertificateEligibilities $certificate_eligibility): self
  245.     {
  246.         $this->certificate_eligibility $certificate_eligibility;
  247.         return $this;
  248.     }
  249.     public function getCreatedAt(): ?\DateTimeImmutable
  250.     {
  251.         return $this->created_at;
  252.     }
  253.     public function setCreatedAt(?\DateTimeImmutable $created_at): self
  254.     {
  255.         $this->created_at $created_at;
  256.         return $this;
  257.     }
  258. }