src/Entity/Scholar/Training/SharedTraining.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Scholar\Training;
  3. use App\Entity\Channel\LockByInterface;
  4. use App\Repository\Scholar\SharedTrainingRepository;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Nellapp\Bundle\SDKBundle\Channel\Entity\ChannelInterface;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. #[
  9.     ORM\Table(name'scholar_shared_trainings'),
  10.     ORM\Entity(repositoryClassSharedTrainingRepository::class),
  11. ]
  12. #[UniqueEntity(
  13.     fields: ['lockBy''ownerChannel'],
  14. )]
  15. class SharedTraining extends Training implements LockByInterface
  16. {
  17.     #[ORM\ManyToOne(targetEntityTraining::class, fetch'EAGER'inversedBy'sharedTrainings')]
  18.     #[ORM\JoinColumn(nullablefalseonDelete'CASCADE')]
  19.     private ?Training $lockBy null;
  20.     #[ORM\Column(type'integer'nullabletrue)]
  21.     private ?int $lockByStatus null;
  22.     public function getLockBy(): ?Training
  23.     {
  24.         return $this->lockBy;
  25.     }
  26.     public function setLockBy(?Training $lockBy): static
  27.     {
  28.         $this->lockBy $lockBy;
  29.         return $this;
  30.     }
  31.     public function getLockByStatus(): ?bool
  32.     {
  33.         return $this->lockByStatus;
  34.     }
  35.     public function setLockByStatus(?bool $lockByStatus): static
  36.     {
  37.         $this->lockByStatus $lockByStatus;
  38.         return $this;
  39.     }
  40.     public function getLockByOwnerChannel(): ?ChannelInterface
  41.     {
  42.         return $this->getLockBy()?->getOwnerChannel();
  43.     }
  44. }