src/Entity/ChannelUserData/AdminChannelUserData/Document/AdminChannelUserDataCertificate.php line 20

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\AdminChannelUserDataCertificateTypeEnum;
  5. use App\Repository\ChannelUserData\AdminChannelUserData\Document\AdminChannelUserDataCertificateRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackEntity;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. #[ORM\Entity(repositoryClass: AdminChannelUserDataCertificateRepository::class)]
  10. #[ORM\Table('file_admin_channel_user_data_certificate')]
  11. #[TrackEntity(fieldGroups: [
  12. 'documents' => [
  13. 'tags' => [AdminChannelUserDataActivityTagEnum::FILES],
  14. ],
  15. ])]
  16. #[UniqueEntity(fields: ['channelUserData', 'certificateType'])]
  17. class AdminChannelUserDataCertificate extends AdminChannelUserDataDocument
  18. {
  19. public const VALIDITY_INTERVAL = '6 months';
  20. #[ORM\Column(type: 'string', length: 255)]
  21. private ?string $certificateType = null;
  22. public function getValidityInterval(): string
  23. {
  24. return self::getValidityIntervalForType($this->certificateType);
  25. }
  26. public static function getValidityIntervalForType(?string $type): string
  27. {
  28. return $type === AdminChannelUserDataCertificateTypeEnum::QUALIOPI
  29. ? '3 years'
  30. : self::VALIDITY_INTERVAL;
  31. }
  32. public function getDocumentType(): ?string
  33. {
  34. return $this->certificateType;
  35. }
  36. public function setDocumentType(?string $certificateType): AdminChannelUserDataCertificate
  37. {
  38. $this->certificateType = $certificateType;
  39. return $this;
  40. }
  41. }