<?php
namespace App\Entity;
use App\Entity\Interfaces\AddressInfoInterface;
use App\Entity\Media\Gallery;
use App\Entity\WebContent\Review;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Cmf\Bundle\CoreBundle\Translatable\TranslatableInterface;
use Symfony\Cmf\Component\Routing\RouteReferrersInterface;
use WAM\Bundle\CoreBundle\Entity\Interfaces\TagInterface;
use WAM\Bundle\CoreBundle\Model\Translatable;
use WAM\Bundle\MediaBundle\Entity\Interfaces\MediaInterface;
use WAM\Bundle\RoutingBundle\Entity\Interfaces\SeoBehaviourInterface;
use WAM\Bundle\RoutingBundle\Entity\Interfaces\SeoMetaReadInterface;
use WAM\Bundle\RoutingBundle\Entity\Traits\MultiRouteTrait;
/**
* @author David Velasco <dvelasco@wearemarketing.com>
*
* @ORM\Entity()
* @ORM\Table(name="app_hotel")
*/
class Hotel implements TranslatableInterface, RouteReferrersInterface, SeoMetaReadInterface, SeoBehaviourInterface, AddressInfoInterface
{
use Translatable;
use MultiRouteTrait;
use AddressInfoTrait;
const CITY_MADRID = 'madrid';
const CITY_MENORCA = 'menorca';
/**
* Identifier.
*
* @var int
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var Media
*
* @ORM\ManyToOne(
* targetEntity = "WAM\Component\Media\Model\Interfaces\MediaInterface",
* cascade = {"all"}
* )
* @ORM\JoinColumn(
* onDelete="SET NULL",
* nullable=true
* )
*/
protected ?MediaInterface $mainImage = null;
/**
* @var Media
*
* @ORM\ManyToOne(
* targetEntity = "WAM\Component\Media\Model\Interfaces\MediaInterface",
* cascade = {"all"}
* )
* @ORM\JoinColumn(
* onDelete="SET NULL",
* nullable=true
* )
*/
protected ?MediaInterface $headerImage = null;
/**
* @var Media
*
* @ORM\ManyToOne(
* targetEntity = "WAM\Component\Media\Model\Interfaces\MediaInterface",
* cascade = {"all"}
* )
* @ORM\JoinColumn(
* onDelete="SET NULL",
* nullable=true
* )
*/
protected $roomsHeaderImage;
/**
* @var Media
*
* @ORM\ManyToOne(
* targetEntity = "WAM\Component\Media\Model\Interfaces\MediaInterface",
* cascade = {"all"}
* )
* @ORM\JoinColumn(
* onDelete="SET NULL",
* nullable=true
* )
*/
protected $ctaImage;
/**
* @ORM\OneToMany(targetEntity="App\Entity\WebContent\Review", mappedBy="hotel")
*/
protected Collection $reviews;
/**
* Gallery has medias.
*
* @ORM\OneToOne(targetEntity = "WAM\Bundle\MediaBundle\Entity\Interfaces\GalleryInterface")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
protected $gallery1;
/**
* Gallery has medias.
*
* @ORM\OneToOne(targetEntity = "WAM\Bundle\MediaBundle\Entity\Interfaces\GalleryInterface")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
protected $gallery2;
/**
* @ORM\ManyToMany(targetEntity="KeySellingPoint")
* @ORM\JoinTable(name="app_hotel_keysellingpoint_hotel",
* joinColumns={@ORM\JoinColumn(name="hotel_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="keySellingPoint_id", referencedColumnName="id")}
* )
*/
private $keySellingPointsHotel;
/**
* @ORM\ManyToMany(targetEntity="KeySellingPoint")
* @ORM\JoinTable(name="app_hotel_keysellingpoint_hotel_home",
* joinColumns={@ORM\JoinColumn(name="hotel_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="keySellingPoint_id", referencedColumnName="id")}
* )
*/
private $keySellingPointsHome;
/**
* One Hotel has Many Experiences.
*
* @ORM\OneToMany(targetEntity="Experience", mappedBy="hotel")
* @ORM\OrderBy({"position" = "ASC"})
*/
private $experiences;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $city;
/**
* @ORM\OneToMany(targetEntity="Room", mappedBy="hotel")
* @ORM\OrderBy({"position" = "ASC"})
*/
private $rooms;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Advantage")
* @ORM\JoinTable(name="app_hotels_advantages",
* joinColumns={@ORM\JoinColumn(name="hotel_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="advantage_id", referencedColumnName="id")}
* )
*/
private Collection $advantages;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private ?bool $showAdvantages = false;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $hotelClass;
/**
* @ORM\ManyToOne(targetEntity="Location", inversedBy="hotels")
* @ORM\JoinColumn(name="location_id", referencedColumnName="id")
*/
private $location;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $simpleName;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $hotelHeaderVideo;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $roomsHeaderVideo;
/**
* @ORM\ManyToOne(targetEntity="WAM\Component\Media\Model\Interfaces\MediaInterface")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $verticalMainImage;
/**
* @ORM\Column(type="string")
*/
private $googleUrl;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript1;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript2;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript3;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript4;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript5;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $reviewProScript6;
/**
* @ORM\Column(type="boolean", nullable=true, options={"default" : 1})
*/
private $enabled;
/**
* @ORM\Column(type="boolean", options={"default": 1})
*/
private $enabledPickingUp = true;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\PurchasableExperience", mappedBy="hotels")
*/
protected $purchasableExperiences;
/**
* @ORM\Column(type="text", nullable=false)
*/
private $miraiHotelId;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $happyForceHierarchyId;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Media\Gallery")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $galleryCertifications;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $leftIcons = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightIcons = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript1 = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript2 = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript3 = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript4 = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript5 = null;
/**
* @ORM\Column(type="text", nullable=true)
*/
private ?string $rightScript6 = null;
/**
* @ORM\Column(type="boolean", options={"default": 0})
*/
private bool $isApartment = false;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Media\Gallery")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
private ?Gallery $cityGallery;
/**
* @ORM\ManyToMany(targetEntity="WAM\Bundle\CoreBundle\Entity\Interfaces\TagInterface")
*
* @var Collection|TagInterface[]
*/
private ?Collection $tags;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $direction = null;
/**
* Hotel constructor.
*/
public function __construct()
{
$this->keySellingPointsHotel = new ArrayCollection();
$this->keySellingPointsHome = new ArrayCollection();
$this->experiences = new ArrayCollection();
$this->rooms = new ArrayCollection();
$this->advantages = new ArrayCollection();
$this->reviews = new ArrayCollection();
}
/**
* Getter for id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
public function setTitle($title)
{
$this->translate(null, false)->setTitle($title);
return $this;
}
public function getTitle()
{
return $this->translate(null, false)->getTitle();
}
/**
* @param string $locale
*
* @return $this
*/
public function setLocale($locale)
{
$this->setCurrentLocale($locale);
return $this;
}
/**
* @return string
*/
public function getLocale()
{
return $this->getCurrentLocale();
}
/**
* Getter for mainImage.
*
* @return Media
*/
public function getMainImage()
{
return $this->mainImage;
}
/**
* Setter for mainImage.
*
* @param Media $mainImage
*
* @return Hotel
*/
public function setMainImage(MediaInterface $mainImage)
{
$this->mainImage = $mainImage;
return $this;
}
/**
* @return string
*/
public function getSeoTitle(): ?string
{
return $this->getTitle();
}
/**
* @return string
*/
public function getSeoDescription(): ?string
{
return $this->getTitle();
}
/**
* @return string|array
*/
public function getSeoKeywords()
{
return $this->getTitle();
}
/**
* @return string
*/
public function getSlug($locale = null)
{
return $this->translate($locale, false)->getSlug();
}
/**
* @param $text
*
* @return $this
*/
public function setSlug($text)
{
$this->translate(null, false)->setSlug($text);
return $this;
}
public function setIntroduction($introduction)
{
$this->translate(null, false)->setIntroduction($introduction);
return $this;
}
public function getIntroduction()
{
return $this->translate(null, false)->getIntroduction();
}
public function setContent($content)
{
$this->translate(null, false)->setContent($content);
return $this;
}
public function getContent()
{
return $this->translate(null, false)->getContent();
}
public function setReviewProTitle($reviewProTitle)
{
$this->translate(null, false)->setReviewProTitle($reviewProTitle);
return $this;
}
public function getReviewProTitle()
{
return $this->translate(null, false)->getReviewProTitle();
}
public function setReviewProIframe($reviewProIframe)
{
$this->translate(null, false)->setReviewProIframe($reviewProIframe);
return $this;
}
public function getReviewProIframe()
{
return $this->translate(null, false)->getReviewProIframe();
}
public function setReviewProTestimonialsIframe($reviewProTestimonialsIframe)
{
$this->translate(null, false)->setReviewProTestimonialsIframe($reviewProTestimonialsIframe);
return $this;
}
public function getReviewProTestimonialsIframe()
{
return $this->translate(null, false)->getReviewProTestimonialsIframe();
}
/**
* @return mixed
*/
public function getCtaImage()
{
return $this->ctaImage;
}
/**
* @param mixed $ctaImage
*
* @return Hotel
*/
public function setCtaImage($ctaImage)
{
$this->ctaImage = $ctaImage;
return $this;
}
/**
* @return mixed
*/
public function getEnabled()
{
return $this->enabled;
}
/**
* @param mixed $enabled
*/
public function setEnabled($enabled)
{
$this->enabled = $enabled;
}
/**
* @return mixed
*/
public function getPurchasableExperiences()
{
return $this->purchasableExperiences;
}
/**
* @param mixed $purchasableExperiences
*/
public function setPurchasableExperiences($purchasableExperiences)
{
$this->purchasableExperiences = $purchasableExperiences;
}
public function setCtaText($ctaText)
{
$this->translate(null, false)->setCtaText($ctaText);
return $this;
}
public function getCtaText()
{
return $this->translate(null, false)->getCtaText();
}
public function setCtaButtonUrl($ctaButtonUrl)
{
$this->translate(null, false)->setCtaButtonUrl($ctaButtonUrl);
return $this;
}
public function getCtaButtonUrl()
{
return $this->translate(null, false)->getCtaButtonUrl();
}
public function setCtaButtonText($ctaButtonText)
{
$this->translate(null, false)->setCtaButtonText($ctaButtonText);
return $this;
}
public function getCtaButtonText()
{
return $this->translate(null, false)->getCtaButtonText();
}
public function addRoom(Room $room)
{
if (!$this->rooms->contains($room)) {
$this->rooms->add($room);
$room->setHotel($this);
}
return $this;
}
public function removeRoom(Room $room)
{
if ($this->rooms->contains($room)) {
$this->rooms->removeElement($room);
$room->setHotel(null);
}
return $this;
}
/**
* @return $this Self Object
*/
public function addKeySellingPointHotel(KeySellingPoint $ksp)
{
if (!$this->keySellingPointsHotel->contains($ksp)) {
$this->keySellingPointsHotel->add($ksp);
}
return $this;
}
/**
* @return $this Self Object
*/
public function removeKeySellingPointHotel(KeySellingPoint $ksp)
{
$this->keySellingPointsHotel->removeElement($ksp);
return $this;
}
/**
* Getter for headerImage.
*
* @return Media
*/
public function getHeaderImage()
{
return $this->headerImage;
}
/**
* Setter for headerImage.
*
* @param Media $headerImage
*
* @return Hotel
*/
public function setHeaderImage(MediaInterface $headerImage)
{
$this->headerImage = $headerImage;
return $this;
}
/**
* Getter for gallery1.
*
* @return mixed
*/
public function getGallery1()
{
return $this->gallery1;
}
/**
* Setter for gallery1.
*
* @param mixed $gallery1
*
* @return Hotel
*/
public function setGallery1($gallery1)
{
$this->gallery1 = $gallery1;
return $this;
}
/**
* Getter for gallery2.
*
* @return mixed
*/
public function getGallery2()
{
return $this->gallery2;
}
/**
* Setter for gallery2.
*
* @param mixed $gallery2
*
* @return Hotel
*/
public function setGallery2($gallery2)
{
$this->gallery2 = $gallery2;
return $this;
}
/**
* Getter for keySellingPointsHotel.
*
* @return mixed
*/
public function getKeySellingPointsHotel()
{
return $this->keySellingPointsHotel;
}
/**
* Setter for keySellingPointsHotel.
*
* @param mixed $keySellingPointsHotel
*
* @return Hotel
*/
public function setKeySellingPointsHotel($keySellingPointsHotel)
{
foreach ($keySellingPointsHotel as $item) {
$this->addKeySellingPointHotel($item);
}
return $this;
}
/**
* Getter for experiences.
*
* @return ArrayCollection
*/
public function getExperiences()
{
return $this->experiences;
}
/**
* Setter for experiences.
*
* @return Hotel
*/
public function setExperiences(ArrayCollection $experiences)
{
$this->experiences = $experiences;
return $this;
}
/**
* @return $this Self Object
*/
public function addExperience(Experience $experience)
{
if (!$this->experiences->contains($experience)) {
$this->experiences->add($experience);
}
return $this;
}
/**
* @return $this Self Object
*/
public function removeExperience(Experience $experience)
{
$this->experiences->removeElement($experience);
return $this;
}
/**
* Getter for city.
*
* @return string
*/
public function getCity()
{
return $this->city;
}
/**
* Setter for city.
*
* @param string $city
*
* @return Hotel
*/
public function setCity($city)
{
$this->city = $city;
return $this;
}
/**
* Getter for rooms.
*
* @return mixed
*/
public function getRooms()
{
return $this->rooms;
}
/**
* @return Collection
*/
public function getAdvantages(): Collection
{
return $this->advantages;
}
/**
* @param Collection $advantages
*/
public function setAdvantages(Collection $advantages): void
{
$this->advantages = $advantages;
}
/**
* @return bool|null
*/
public function getShowAdvantages(): ?bool
{
return $this->showAdvantages;
}
/**
* @param bool|null $showAdvantages
*/
public function setShowAdvantages(?bool $showAdvantages): void
{
$this->showAdvantages = $showAdvantages;
}
/**
* Setter for rooms.
*
* @return Hotel
*/
public function setRooms(Collection $rooms)
{
foreach ($this->rooms as $room) {
if (!$rooms->contains($room)) {
$this->removeRoom($room);
}
}
foreach ($rooms as $room) {
$this->addRoom($room);
}
return $this;
}
/**
* Getter for hotelClass.
*
* @return mixed
*/
public function getHotelClass()
{
return $this->hotelClass;
}
/**
* Setter for hotelClass.
*
* @param mixed $hotelClass
*
* @return Hotel
*/
public function setHotelClass($hotelClass)
{
$this->hotelClass = $hotelClass;
return $this;
}
/**
* @return mixed
*/
public function getReviews()
{
return $this->reviews;
}
/**
* @param mixed $reviews
*
* @return Hotel
*/
public function setReviews($reviews)
{
$this->reviews = $reviews;
return $this;
}
public function addReview(Review $review)
{
if (!$this->reviews->contains($review)) {
$this->reviews->add($review);
}
return $this;
}
public function removeReview(Review $review)
{
$this->reviews->removeElement($review);
return $this;
}
public function setRoomSectionTitle($roomSectionTitle)
{
$this->translate(null, false)->setRoomSectionTitle($roomSectionTitle);
return $this;
}
public function getRoomSectionTitle()
{
return $this->translate(null, false)->getRoomSectionTitle();
}
public function setRoomSectionContent($roomSectionContent)
{
$this->translate(null, false)->setRoomSectionContent($roomSectionContent);
return $this;
}
public function getRoomSectionContent()
{
return $this->translate(null, false)->getRoomSectionContent();
}
public function setRoomSectionLinkTitle($roomSectionLinkTitle)
{
$this->translate(null, false)->setRoomSectionLinkTitle($roomSectionLinkTitle);
return $this;
}
public function getRoomSectionLinkTitle()
{
return $this->translate(null, false)->getRoomSectionLinkTitle();
}
public function __toString()
{
return (string) $this->getTitle();
}
/**
* Getter for location.
*
* @return mixed
*/
public function getLocation()
{
return $this->location;
}
/**
* Setter for location.
*
* @param $location
*
* @return Hotel
*/
public function setLocation($location)
{
$this->location = $location;
return $this;
}
/**
* Getter for roomsHeaderImage.
*
* @return Media
*/
public function getRoomsHeaderImage()
{
return $this->roomsHeaderImage;
}
/**
* Setter for roomsHeaderImage.
*
* @param Media $roomsHeaderImage
*
* @return Hotel
*/
public function setRoomsHeaderImage(MediaInterface $roomsHeaderImage)
{
$this->roomsHeaderImage = $roomsHeaderImage;
return $this;
}
public function setRoomsHeaderTitle($roomsHeaderTitle)
{
$this->translate(null, false)->setRoomsHeaderTitle($roomsHeaderTitle);
return $this;
}
public function getRoomsHeaderTitle()
{
return $this->translate(null, false)->getRoomsHeaderTitle();
}
/**
* Getter for keySellingPointsHome.
*
* @return mixed
*/
public function getKeySellingPointsHome()
{
return $this->keySellingPointsHome;
}
/**
* Setter for keySellingPointsHome.
*
* @param mixed $keySellingPointsHome
*
* @return Hotel
*/
public function setKeySellingPointsHome($keySellingPointsHome)
{
foreach ($keySellingPointsHome as $item) {
$this->addKeySellingPointHome($item);
}
return $this;
}
/**
* @return $this Self Object
*/
public function addKeySellingPointHome(KeySellingPoint $ksp)
{
if (!$this->keySellingPointsHome->contains($ksp)) {
$this->keySellingPointsHome->add($ksp);
}
return $this;
}
public function setIntroductionTitle($introductionTitle)
{
$this->translate(null, false)->setIntroductionTitle($introductionTitle);
return $this;
}
public function getIntroductionTitle()
{
return $this->translate(null, false)->getIntroductionTitle();
}
/**
* @return $this Self Object
*/
public function removeKeySellingPointHome(KeySellingPoint $ksp)
{
$this->keySellingPointsHome->removeElement($ksp);
return $this;
}
public function setHowToGetThere($howToGetThere)
{
$this->translate(null, false)->setHowToGetThere($howToGetThere);
return $this;
}
public function getHowToGetThere()
{
return $this->translate(null, false)->getHowToGetThere();
}
public function getInstagramScript()
{
return $this->translate(null, false)->getInstagramScript();
}
public function setInstagramScript($instagramScript)
{
$this->translate(null, false)->setInstagramScript($instagramScript);
return $this;
}
/**
* Getter for simpleName.
*
* @return string
*/
public function getSimpleName()
{
return $this->simpleName;
}
/**
* Setter for simpleName.
*
* @param string $simpleName
*
* @return Hotel
*/
public function setSimpleName($simpleName)
{
$this->simpleName = $simpleName;
return $this;
}
/**
* Getter for hotelHeaderVideo.
*
* @return mixed
*/
public function getHotelHeaderVideo()
{
return $this->hotelHeaderVideo;
}
/**
* Setter for hotelHeaderVideo.
*
* @param mixed $hotelHeaderVideo
*
* @return Hotel
*/
public function setHotelHeaderVideo($hotelHeaderVideo)
{
$this->hotelHeaderVideo = $hotelHeaderVideo;
return $this;
}
/**
* Getter for roomsHeaderVideo.
*
* @return mixed
*/
public function getRoomsHeaderVideo()
{
return $this->roomsHeaderVideo;
}
/**
* Setter for roomsHeaderVideo.
*
* @param mixed $roomsHeaderVideo
*
* @return Hotel
*/
public function setRoomsHeaderVideo($roomsHeaderVideo)
{
$this->roomsHeaderVideo = $roomsHeaderVideo;
return $this;
}
/**
* Getter for verticalMainImage.
*
* @return mixed
*/
public function getVerticalMainImage()
{
return $this->verticalMainImage;
}
/**
* Setter for verticalMainImage.
*
* @param mixed $verticalMainImage
*
* @return Hotel
*/
public function setVerticalMainImage($verticalMainImage)
{
$this->verticalMainImage = $verticalMainImage;
return $this;
}
/**
* Getter for googleUrl.
*
* @return mixed
*/
public function getGoogleUrl()
{
return $this->googleUrl;
}
/**
* Setter for googleUrl.
*
* @param mixed $googleUrl
*
* @return Hotel
*/
public function setGoogleUrl($googleUrl)
{
$this->googleUrl = $googleUrl;
return $this;
}
/**
* Getter for reviewProScript1.
*
* @return mixed
*/
public function getReviewProScript1()
{
return $this->reviewProScript1;
}
/**
* Setter for reviewProScript1.
*
* @param mixed $reviewProScript1
*
* @return Hotel
*/
public function setReviewProScript1($reviewProScript1)
{
$this->reviewProScript1 = $reviewProScript1;
return $this;
}
/**
* Getter for reviewProScript2.
*
* @return mixed
*/
public function getReviewProScript2()
{
return $this->reviewProScript2;
}
/**
* Setter for reviewProScript2.
*
* @param mixed $reviewProScript2
*
* @return Hotel
*/
public function setReviewProScript2($reviewProScript2)
{
$this->reviewProScript2 = $reviewProScript2;
return $this;
}
/**
* Getter for reviewProScript3.
*
* @return mixed
*/
public function getReviewProScript3()
{
return $this->reviewProScript3;
}
/**
* Setter for reviewProScript3.
*
* @param mixed $reviewProScript3
*
* @return Hotel
*/
public function setReviewProScript3($reviewProScript3)
{
$this->reviewProScript3 = $reviewProScript3;
return $this;
}
/**
* Getter for reviewProScript4.
*
* @return mixed
*/
public function getReviewProScript4()
{
return $this->reviewProScript4;
}
/**
* Setter for reviewProScript4.
*
* @param mixed $reviewProScript4
*
* @return Hotel
*/
public function setReviewProScript4($reviewProScript4)
{
$this->reviewProScript4 = $reviewProScript4;
return $this;
}
/**
* Getter for reviewProScript5.
*
* @return mixed
*/
public function getReviewProScript5()
{
return $this->reviewProScript5;
}
/**
* Setter for reviewProScript5.
*
* @param mixed $reviewProScript5
*
* @return Hotel
*/
public function setReviewProScript5($reviewProScript5)
{
$this->reviewProScript5 = $reviewProScript5;
return $this;
}
/**
* Getter for reviewProScript6.
*
* @return mixed
*/
public function getReviewProScript6()
{
return $this->reviewProScript6;
}
/**
* Setter for reviewProScript6.
*
* @param mixed $reviewProScript6
*
* @return Hotel
*/
public function setReviewProScript6($reviewProScript6)
{
$this->reviewProScript6 = $reviewProScript6;
return $this;
}
public static function getCities()
{
return [
self::CITY_MENORCA => self::CITY_MENORCA,
self::CITY_MADRID => self::CITY_MADRID,
];
}
/**
* Getter for enabledPickingUp.
*
* @return bool|null
*/
public function getEnabledPickingUp()
{
return $this->enabledPickingUp;
}
/**
* Setter for enabledPickingUp.
*
* @param bool|null $enabledPickingUp
*
* @return Hotel
*/
public function setEnabledPickingUp($enabledPickingUp)
{
$this->enabledPickingUp = $enabledPickingUp;
return $this;
}
public function getGoogleStructuredCode()
{
return $this->translate(null, false)->getGoogleStructuredCode();
}
public function setGoogleStructuredCode($googleStructuredCode)
{
$this->translate(null, false)->setGoogleStructuredCode($googleStructuredCode);
return $this;
}
public function getMiraiHotelId()
{
return $this->miraiHotelId;
}
public function setMiraiHotelId($miraiHotelId)
{
$this->miraiHotelId = $miraiHotelId;
}
/**
* @return mixed
*/
public function getHappyForceHierarchyId()
{
return $this->happyForceHierarchyId;
}
/**
* @param mixed $happyForceHierarchyId
*/
public function setHappyForceHierarchyId($happyForceHierarchyId): void
{
$this->happyForceHierarchyId = $happyForceHierarchyId;
}
/**
* @return mixed
*/
public function getGalleryCertifications()
{
return $this->galleryCertifications;
}
/**
* @param mixed $galleryCertifications
*/
public function setGalleryCertifications($galleryCertifications): void
{
$this->galleryCertifications = $galleryCertifications;
}
/**
* @return string|null
*/
public function getLeftIcons(): ?string
{
return $this->leftIcons;
}
/**
* @param string|null $leftIcons
*/
public function setLeftIcons(?string $leftIcons): void
{
$this->leftIcons = $leftIcons;
}
/**
* @return string|null
*/
public function getRightIcons(): ?string
{
return $this->rightIcons;
}
/**
* @param string|null $rightIcons
*/
public function setRightIcons(?string $rightIcons): void
{
$this->rightIcons = $rightIcons;
}
/**
* @return string|null
*/
public function getRightScript1(): ?string
{
return $this->rightScript1;
}
/**
* @param string|null $rightScript1
*/
public function setRightScript1(?string $rightScript1): void
{
$this->rightScript1 = $rightScript1;
}
/**
* @return string|null
*/
public function getRightScript2(): ?string
{
return $this->rightScript2;
}
/**
* @param string|null $rightScript2
*/
public function setRightScript2(?string $rightScript2): void
{
$this->rightScript2 = $rightScript2;
}
/**
* @return string|null
*/
public function getRightScript3(): ?string
{
return $this->rightScript3;
}
/**
* @param string|null $rightScript3
*/
public function setRightScript3(?string $rightScript3): void
{
$this->rightScript3 = $rightScript3;
}
/**
* @return string|null
*/
public function getRightScript4(): ?string
{
return $this->rightScript4;
}
/**
* @param string|null $rightScript4
*/
public function setRightScript4(?string $rightScript4): void
{
$this->rightScript4 = $rightScript4;
}
/**
* @return string|null
*/
public function getRightScript5(): ?string
{
return $this->rightScript5;
}
/**
* @param string|null $rightScript5
*/
public function setRightScript5(?string $rightScript5): void
{
$this->rightScript5 = $rightScript5;
}
/**
* @return string|null
*/
public function getRightScript6(): ?string
{
return $this->rightScript6;
}
/**
* @param string|null $rightScript6
*/
public function setRightScript6(?string $rightScript6): void
{
$this->rightScript6 = $rightScript6;
}
/**
* @return bool
*/
public function isApartment(): bool
{
return $this->isApartment;
}
/**
* @param bool $isApartment
*/
public function setIsApartment(bool $isApartment): void
{
$this->isApartment = $isApartment;
}
/**
* @return Gallery|null
*/
public function getCityGallery(): ?Gallery
{
return $this->cityGallery;
}
/**
* @param Gallery|null $cityGallery
*/
public function setCityGallery(?Gallery $cityGallery): void
{
$this->cityGallery = $cityGallery;
}
/**
* @return Collection|TagInterface[]
*/
public function getTags(): Collection
{
return $this->tags;
}
public function setTags(Collection $tags): void
{
$this->tags = $tags;
}
public function addTag(TagInterface $tag): void
{
if (!$this->tags->contains($tag)) {
$this->tags->add($tag);
}
}
public function removeTag(TagInterface $tag): void
{
$this->tags->removeElement($tag);
}
/**
* @return string|null
*/
public function getDirection(): ?string
{
return $this->direction;
}
/**
* @param string|null $direction
*/
public function setDirection(?string $direction): void
{
$this->direction = $direction;
}
}