src/Entity/BC/ProcessType.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity\BC;
  3. use App\Repository\BC\ProcessTypeRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. #[ORM\Entity(repositoryClassProcessTypeRepository::class)]
  8. #[ORM\HasLifecycleCallbacks]
  9. class ProcessType
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\Column(type'string'length64)]
  13.     private string $id;
  14.     #[ORM\Column(type'string'length255nullabletrue)]
  15.     private ?string $description null;
  16.     #[ORM\ManyToOne(targetEntitySubscriptionModel::class, inversedBy'processTypes')]
  17.     #[ORM\JoinColumn(name'subscription_model_id'referencedColumnName'id'nullablefalse)]
  18.     private SubscriptionModel $subscriptionModel;
  19.     #[ORM\OneToMany(mappedBy'processType'targetEntityPositionType::class, cascade: ['persist'], orphanRemovalfalse)]
  20.     private Collection $positionTypes;
  21.     #[ORM\Column(type'datetime_immutable')]
  22.     private \DateTimeImmutable $createdAt;
  23.     #[ORM\Column(type'datetime_immutable'nullabletrue)]
  24.     private \DateTimeImmutable $updatedAt;
  25.     public function __construct(string $id)
  26.     {
  27.         $this->id $id;
  28.         $this->positionTypes = new ArrayCollection();
  29.     }
  30.     #[ORM\PrePersist]
  31.     public function onPrePersist(): void
  32.     {
  33.         $now = new \DateTimeImmutable();
  34.         $this->createdAt $now;
  35.     }
  36.     #[ORM\PreUpdate]
  37.     public function onPreUpdate(): void
  38.     {
  39.         $this->updatedAt = new \DateTimeImmutable();
  40.     }
  41.     public function getId(): string
  42.     {
  43.         return $this->id;
  44.     }
  45.     public function getDescription(): ?string
  46.     {
  47.         return $this->description;
  48.     }
  49.     public function setDescription(?string $description): void
  50.     {
  51.         $this->description $description;
  52.     }
  53.     public function getSubscriptionModel(): SubscriptionModel
  54.     {
  55.         return $this->subscriptionModel;
  56.     }
  57.     public function setSubscriptionModel(SubscriptionModel $subscriptionModel): void
  58.     {
  59.         $this->subscriptionModel $subscriptionModel;
  60.     }
  61.     public function getPositionTypes(): Collection
  62.     {
  63.         return $this->positionTypes;
  64.     }
  65.     public function addPositionType(PositionType $positionType): void
  66.     {
  67.         if (!$this->positionTypes->contains($positionType)) {
  68.             $this->positionTypes->add($positionType);
  69.             $positionType->setProcessType($this);
  70.         }
  71.     }
  72.     public function getCreatedAt(): \DateTimeImmutable
  73.     {
  74.         return $this->createdAt;
  75.     }
  76.     public function getUpdatedAt(): ?\DateTimeImmutable
  77.     {
  78.         return $this->updatedAt;
  79.     }
  80. }