src/Entity/ChannelUserData/Activity/AbstractActivity.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\Activity;
  3. use App\Repository\ChannelUserData\Activity\AbstractActivityRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Nellapp\Bundle\SDKBundle\ActivityFeed\Entity\AbstractActivity as BaseActivity;
  6. use Symfony\Component\Serializer\Annotation as Serial;
  7. #[
  8.     ORM\Entity(repositoryClassAbstractActivityRepository::class),
  9.     ORM\Table(name'channel_user_data_abstract_activity'),
  10.     ORM\InheritanceType('JOINED'),
  11.     ORM\DiscriminatorColumn(name'type'type'string'),
  12.     ORM\DiscriminatorMap(
  13.         [
  14.             'trackData-type' => TrackDataActivity::class,
  15.             'message-type' => CommentActivity::class,
  16.             'meeting-type' => MeetingActivity::class
  17.         ]
  18.     ),
  19.     Serial\DiscriminatorMap(
  20.         typeProperty'type',
  21.         mapping: [
  22.             'trackData-type' => TrackDataActivity::class,
  23.             'message-type' => CommentActivity::class,
  24.             'meeting-type' => MeetingActivity::class]
  25.     )
  26. ]
  27. abstract class AbstractActivity extends BaseActivity
  28. {
  29.     #[ORM\Column(type'json')]
  30.     #[Serial\Groups(['activity:get''activity:post'])]
  31.     private array $tags = [];
  32.     public function getTags(): array
  33.     {
  34.         return $this->tags;
  35.     }
  36.     public function addTag(int $tag): static
  37.     {
  38.         if (!in_array($tag$this->getTags())) {
  39.             $this->tags[] = $tag;
  40.         }
  41.         return $this;
  42.     }
  43.     public function setTags(array $tags): static
  44.     {
  45.         $this->tags $tags;
  46.         return $this;
  47.     }
  48. }