src/Entity/ChannelUserData/Activity/MeetingActivity.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\Activity;
  3. use App\Enum\ChannelUserData\Activity\MeetingActivityContactTypeEnum;
  4. use App\Enum\ChannelUserData\Activity\MeetingActivityModalityEnum;
  5. use App\Repository\ChannelUserData\Activity\CommentActivityRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Serializer\Annotation as Serial;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. #[
  10. ORM\Entity(repositoryClass: CommentActivityRepository::class),
  11. ORM\Table(name: 'channel_user_data_meeting_activity'),
  12. ]
  13. class MeetingActivity extends AbstractActivity
  14. {
  15. #[ORM\Column(type: 'integer', nullable: true)]
  16. #[Serial\Groups(['activity:get', 'activity:post'])]
  17. #[
  18. Assert\Choice(
  19. callback: [MeetingActivityContactTypeEnum::class, 'getChoices'],
  20. message: 'meetingActivity.contactType.Choice.message',
  21. groups: ['activity:post']
  22. )
  23. ]
  24. private ?int $contactType = null;
  25. #[ORM\Column(type: 'integer', nullable: true)]
  26. #[Serial\Groups(['activity:get', 'activity:post'])]
  27. #[Assert\GreaterThanOrEqual(value: 0, message: 'meetingActivity.duration.GreaterThanOrEqual.message', groups: ['activity:post'])]
  28. private ?int $duration = null;
  29. #[ORM\Column(type: 'integer', nullable: true)]
  30. #[Serial\Groups(['activity:get', 'activity:post'])]
  31. #[
  32. Assert\Choice(
  33. callback: [MeetingActivityModalityEnum::class, 'getChoices'],
  34. message: 'meetingActivity.modality.Choice.message',
  35. groups: ['activity:post']
  36. )
  37. ]
  38. private ?int $modality = null;
  39. /** @var int[] $objective */
  40. #[ORM\Column(type: 'simple_array', nullable: true)]
  41. #[Serial\Groups(['activity:get', 'activity:post'])]
  42. #[
  43. Assert\NotBlank(
  44. message: 'meetingActivity.objectives.Choice.message',
  45. groups: ['activity:post'],
  46. )
  47. ]
  48. private array $objectives = [];
  49. #[ORM\Column(type: 'text', length: 10000, nullable: true)]
  50. #[Assert\NotBlank(groups: ['activity:post'])]
  51. #[Assert\Length(min: 20, max: 10000, groups: ['activity:post'])]
  52. #[Serial\Groups(['activity:get', 'activity:post'])]
  53. private ?string $content = null;
  54. #[ORM\Column(type: 'text', length: 10000, nullable: true)]
  55. #[Serial\Groups(['activity:get', 'activity:post'])]
  56. #[Assert\Length(max: 10000, groups: ['activity:post'])]
  57. private ?string $planContent = null;
  58. #[Serial\Groups(['activity:get'])]
  59. public function getContentNl2br(): string
  60. {
  61. return $this->content ? nl2br($this->content) : '';
  62. }
  63. #[Serial\Groups(['activity:get'])]
  64. public function getPlanContentNl2br(): string
  65. {
  66. return $this->planContent ? nl2br($this->planContent) : '';
  67. }
  68. public function getContactType(): ?int
  69. {
  70. return $this->contactType;
  71. }
  72. public function setContactType(?int $contactType): MeetingActivity
  73. {
  74. $this->contactType = $contactType;
  75. return $this;
  76. }
  77. public function getDuration(): ?int
  78. {
  79. return $this->duration;
  80. }
  81. public function setDuration(?int $duration): MeetingActivity
  82. {
  83. $this->duration = $duration;
  84. return $this;
  85. }
  86. public function getModality(): ?int
  87. {
  88. return $this->modality;
  89. }
  90. public function setModality(?int $modality): MeetingActivity
  91. {
  92. $this->modality = $modality;
  93. return $this;
  94. }
  95. public function getObjectives(): array
  96. {
  97. return $this->objectives;
  98. }
  99. public function setObjectives(array $objectives): MeetingActivity
  100. {
  101. $this->objectives = $objectives;
  102. return $this;
  103. }
  104. public function getContent(): ?string
  105. {
  106. return $this->content;
  107. }
  108. public function setContent(?string $content): MeetingActivity
  109. {
  110. $this->content = $content;
  111. return $this;
  112. }
  113. public function getPlanContent(): ?string
  114. {
  115. return $this->planContent;
  116. }
  117. public function setPlanContent(?string $planContent): MeetingActivity
  118. {
  119. $this->planContent = $planContent;
  120. return $this;
  121. }
  122. }