src/Entity/ChannelUserData/AdminChannelUserData/Document/AdminChannelUserDataAgreement.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\AdminChannelUserData\Document;
  3. use App\Enum\ChannelUserData\Activity\AdminChannelUserDataActivityTagEnum;
  4. use App\Enum\ChannelUserData\Document\AdminChannelUserDataDocumentTypeEnum;
  5. use App\Enum\ChannelUserData\Document\AgreementStatusEnum;
  6. use App\Repository\ChannelUserData\AdminChannelUserData\Document\AdminChannelUserDataAgreementRepository;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackEntity;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. #[ORM\Entity(repositoryClass: AdminChannelUserDataAgreementRepository::class)]
  11. #[ORM\Table('file_admin_channel_user_data_agreement')]
  12. #[TrackEntity(fieldGroups: [
  13. 'documents' => [
  14. 'tags' => [AdminChannelUserDataActivityTagEnum::FILES],
  15. ]
  16. ])]
  17. class AdminChannelUserDataAgreement extends AdminChannelUserDataDocument
  18. {
  19. public const VALIDITY_INTERVAL = '1 year';
  20. #[ORM\Column(type: 'string', nullable: true)]
  21. #[Assert\Choice(
  22. callback: [AgreementStatusEnum::class, 'getChoices'],
  23. message: 'adminChannelUser.document.choice.message',
  24. )]
  25. private ?string $status = null;
  26. #[ORM\Column(type: 'datetime_immutable', nullable: true)]
  27. private ?\DateTimeImmutable $signedAt = null;
  28. #[ORM\Column(type: 'string', nullable: true)]
  29. private ?string $refusalReason = null;
  30. public function getDocumentType(): ?string
  31. {
  32. return AdminChannelUserDataDocumentTypeEnum::AGREEMENT;
  33. }
  34. public function getStatus(): ?string
  35. {
  36. return $this->status;
  37. }
  38. public function setStatus(?string $status): AdminChannelUserDataAgreement
  39. {
  40. $this->status = $status;
  41. return $this;
  42. }
  43. public function getRefusalReason(): ?string
  44. {
  45. return $this->refusalReason;
  46. }
  47. public function setRefusalReason(?string $refusalReason): AdminChannelUserDataAgreement
  48. {
  49. $this->refusalReason = $refusalReason;
  50. return $this;
  51. }
  52. public function getSignedAt(): ?\DateTimeImmutable
  53. {
  54. return $this->signedAt;
  55. }
  56. public function setSignedAt(?\DateTimeImmutable $signedAt): AdminChannelUserDataAgreement
  57. {
  58. $this->signedAt = $signedAt;
  59. return $this;
  60. }
  61. public function getValidityInterval(): string
  62. {
  63. return self::VALIDITY_INTERVAL;
  64. }
  65. }