src/Entity/PartnerCertificates.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\PartnerCertificatesRepository;
  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. /**
  9.  * @ORM\Entity(repositoryClass=PartnerCertificatesRepository::class)
  10.  */
  11. class PartnerCertificates
  12. {
  13.     /**
  14.      * @ORM\Id
  15.      * @ORM\GeneratedValue
  16.      * @ORM\Column(type="integer")
  17.      * @Groups({
  18.      *     "partner.manage.base",
  19.      *     "partner.certificate.manage",
  20.      *
  21.      *     "partner_certificate@core"
  22.      * })
  23.      */
  24.     private $id;
  25.     /**
  26.      * @ORM\ManyToOne(targetEntity=Partner::class, inversedBy="partnerCertificates")
  27.      */
  28.     private $partner;
  29.     /**
  30.      * @ORM\ManyToOne(targetEntity=Certificates::class, inversedBy="partnerCertificates")
  31.      * @Groups({
  32.      *     "partner.manage.base",
  33.      *     "partner.certificate.manage",
  34.      *
  35.      *     "partner_certificate@certificate"
  36.      * })
  37.      */
  38.     private $certificate;
  39.     /**
  40.      * @ORM\Column(type="datetime_immutable")
  41.      * @Groups({
  42.      *     "partner_certificate@core"
  43.      * })
  44.      */
  45.     private $created_at;
  46.     /**
  47.      * @ORM\OneToMany(targetEntity=PartnerCertificateHistories::class, mappedBy="partner_certificate", cascade={"persist", "remove"}, fetch="EXTRA_LAZY")
  48.      * @ORM\OrderBy({"valid_from_at": "DESC"})
  49.      * @Groups({
  50.      *     "partner.manage.base",
  51.      *     "partner.certificate.manage",
  52.      *
  53.      *     "partner_certificate@histories"
  54.      * })
  55.      */
  56.     private $partner_certificate_histories;
  57.     // private $partnerCertificateLastHistory;
  58.     public function __construct()
  59.     {
  60.         $this->partner_certificate_histories = new ArrayCollection();
  61.     }
  62.     public function getId(): ?int
  63.     {
  64.         return $this->id;
  65.     }
  66.     public function getPartner(): ?Partner
  67.     {
  68.         return $this->partner;
  69.     }
  70.     public function setPartner(?Partner $partner): self
  71.     {
  72.         $this->partner $partner;
  73.         return $this;
  74.     }
  75.     public function getCertificate(): ?Certificates
  76.     {
  77.         return $this->certificate;
  78.     }
  79.     public function setCertificate(?Certificates $certificate): self
  80.     {
  81.         $this->certificate $certificate;
  82.         return $this;
  83.     }
  84.     public function getCreatedAt(): ?\DateTimeImmutable
  85.     {
  86.         return $this->created_at;
  87.     }
  88.     public function setCreatedAt(\DateTimeImmutable $created_at): self
  89.     {
  90.         $this->created_at $created_at;
  91.         return $this;
  92.     }
  93.     /**
  94.      * @return Collection<int, PartnerCertificateHistories>
  95.      */
  96.     public function getPartnerCertificatehistories(): Collection
  97.     {
  98.         return $this->partner_certificate_histories;
  99.         return $this->partner_certificate_histories->map( function( /**@var $partnerCertificateHistory PartnerCertificateHistories*/ $partnerCertificateHistory ){
  100.             return [
  101.                 'id' => $partnerCertificateHistory->getId(),
  102.                 'createdAt' => $partnerCertificateHistory->getCreatedAt(),
  103.                 'partnerCertificateDocuments' => $partnerCertificateHistory->getPartnerCertificatedocuments()
  104.             ];
  105.         });
  106.     }
  107.     // public function getPartnerCertificateLastHistory(): ?PartnerCertificateHistories  {
  108.     //    if( $this->partnerCertificateHistories->first() instanceof PartnerCertificateHistories ){
  109.     //        $this->partnerCertificateLastHistory = $this->partnerCertificateHistories->first();
  110.     //        return $this->partnerCertificateLastHistory;
  111.     //    }
  112.     //    return null;
  113.     // }
  114.     public function addPartnerCertificateHistory(PartnerCertificateHistories $partnerCertificateHistory): self
  115.     {
  116.         if (!$this->partner_certificate_histories->contains($partnerCertificateHistory)) {
  117.             $this->partner_certificate_histories[] = $partnerCertificateHistory;
  118.             $partnerCertificateHistory->setPartnerCertificate($this);
  119.         }
  120.         return $this;
  121.     }
  122.     public function removePartnerCertificateHistory(PartnerCertificateHistories $partnerCertificateHistory): self
  123.     {
  124.         if ($this->partner_certificate_histories->removeElement($partnerCertificateHistory)) {
  125.             // set the owning side to null (unless already changed)
  126.             if ($partnerCertificateHistory->getPartnerCertificate() === $this) {
  127.                 $partnerCertificateHistory->setPartnerCertificate(null);
  128.             }
  129.         }
  130.         return $this;
  131.     }
  132. }