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(repositoryClass: AbstractActivityRepository::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. }