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. }