src/AtechNet/CoreBundle/Entity/ReviewSurveyMedia.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use App\AtechNet\CoreBundle\Helper\CloudflareImage;
  4. use Doctrine\ORM\Mapping\Column;
  5. use Doctrine\ORM\Mapping\Entity;
  6. use Doctrine\ORM\Mapping\JoinColumn;
  7. use Doctrine\ORM\Mapping\ManyToOne;
  8. use Doctrine\ORM\Mapping\Table as Table;
  9. /**
  10.  * ReviewSurveyMedia
  11.  *
  12.  * @Table(name="review_survey_media")
  13.  * @Entity()
  14.  */
  15. class ReviewSurveyMedia extends AbstractSignedEntity
  16. {
  17.     /**
  18.      * @var Review
  19.      *
  20.      * @ManyToOne(targetEntity="Review", inversedBy="surveyMedias")
  21.      * @JoinColumn(name="review_id", referencedColumnName="id")
  22.      */
  23.     private $review;
  24.     /**
  25.      * @var SurveyMedia
  26.      *
  27.      * @ManyToOne(targetEntity="SurveyMedia", inversedBy="reviews")
  28.      * @JoinColumn(name="survey_media_id", referencedColumnName="id")
  29.      */
  30.     private $surveyMedia;
  31.     /**
  32.      * @var bool
  33.      *
  34.      * @Column(name="approved", type="boolean")
  35.      */
  36.     private $approved = false;
  37.     /**
  38.      * @var string
  39.      *
  40.      * @Column(name="cloudflare_id", type="string", length=256, nullable=true)
  41.      */
  42.     private $cloudflareId;
  43.     /**
  44.      * @return Review
  45.      */
  46.     public function getReview()
  47.     {
  48.         return $this->review;
  49.     }
  50.     /**
  51.      * @param Review $review
  52.      */
  53.     public function setReview($review)
  54.     {
  55.         $this->review = $review;
  56.     }
  57.     /**
  58.      * @return SurveyMedia
  59.      */
  60.     public function getSurveyMedia()
  61.     {
  62.         return $this->surveyMedia;
  63.     }
  64.     /**
  65.      * @param SurveyMedia $surveyMedia
  66.      */
  67.     public function setSurveyMedia($surveyMedia)
  68.     {
  69.         $this->surveyMedia = $surveyMedia;
  70.     }
  71.     /**
  72.      * @return bool
  73.      */
  74.     public function isApproved()
  75.     {
  76.         return $this->approved;
  77.     }
  78.     /**
  79.      * @param bool $approved
  80.      */
  81.     public function setApproved($approved)
  82.     {
  83.         $this->approved = $approved;
  84.     }
  85.     /**
  86.      * @return string|null
  87.      */
  88.     public function getCloudflareId(): ?string
  89.     {
  90.         return $this->cloudflareId;
  91.     }
  92.     /**
  93.      * @param string|null $cloudflareId
  94.      */
  95.     public function setCloudflareId(?string $cloudflareId): void
  96.     {
  97.         $this->cloudflareId = $cloudflareId;
  98.     }
  99.     /**
  100.      * @param string $variant
  101.      * @return string
  102.      */
  103.     public function getCdnUrl(string $variant): string
  104.     {
  105.         if (!is_null($this->cloudflareId)) {
  106.             return 'https://imagedelivery.net/' . CloudflareImage::ACCOUNT_HASH . '/' . $this->cloudflareId . '/' . $variant;
  107.         }
  108.         return '';
  109.     }
  110. }