<?php
namespace App\Entity;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* Shoppingmalls
*
* @ORM\Table(name="shoppingmalls", indexes={@ORM\Index(name="fk_shoppingmalls_cities1_idx", columns={"city"})})
* @ORM\Entity(repositoryClass="App\Repository\ShoppingMallRepository")
*/
class Shoppingmall
{
/**
* @var int
*
* @ORM\Column(name="shoppingmall_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="_id", type="string", nullable=true)
*/
protected $_id;
/**
* @var string
*
* @ORM\Column(name="label", type="string", length=255, nullable=true)
*/
private $label;
/**
* @var string|null
*
* @ORM\Column(name="opening_hr", type="string", length=255, nullable=true)
*/
private $openingHr;
/**
* @var string|null
*
* @ORM\Column(name="street", type="string", length=255, nullable=true)
*/
private $street;
/**
* @var string|null
*
* @ORM\Column(name="zip", type="string", length=255, nullable=true)
*/
private $zip;
/**
* @var bool|null
*
* @ORM\Column(name="is_outlet", type="integer", nullable=true)
*/
private $isOutlet;
/**
* @var bool|null
*
* @ORM\Column(name="is_new", type="boolean", nullable=true)
*/
private $isNew;
/**
* @var bool|null
*
* @ORM\Column(name="is_active", type="boolean", nullable=true)
*/
private $isActive;
/**
* @var \DateTime|null
*
* @ORM\Column(name="is_new_date", type="datetime", nullable=true)
*/
private $isNewDate;
/**
* @var string|null
*
* @ORM\Column(name="www", type="string", length=255, nullable=true)
*/
private $www;
/**
* @var string|null
*
* @ORM\Column(name="apitime", type="string", length=255, nullable=true)
*/
private $apitime;
/**
* @var string|null
*
* @ORM\Column(name="apigeo", type="string", length=255, nullable=true)
*/
private $apigeo;
/**
* @var float|null
*
* @ORM\Column(name="latitude", type="float", precision=10, scale=0, nullable=true)
*/
private $latitude;
/**
* @var float|null
*
* @ORM\Column(name="longitude", type="float", precision=10, scale=0, nullable=true)
*/
private $longitude;
/**
* @var string|null
*
* @ORM\Column(name="special_offer", type="string", length=255, nullable=true)
*/
private $specialOffer;
/**
* @var string|null
*
* @ORM\Column(name="mapurl", type="string", length=255, nullable=true)
*/
private $mapurl;
/**
* @return string|null
*/
public function getMapurl(): ?string
{
return $this->mapurl;
}
/**
* @param string|null $mapurl
*/
public function setMapurl(?string $mapurl): void
{
$this->mapurl = $mapurl;
}
/**
* Last GEO directions load time
* @var DateTime|null
*
* @ORM\Column(name="last_sync_time", type="datetimetz", nullable=true)
*/
private $lastSyncTime;
/**
* Created Date
* @var DateTime|null
*
* @ORM\Column(name="created_at", type="datetimetz", nullable=true)
*/
private $createdAt;
/**
* Updated Date
* @var DateTime|null
*
* @ORM\Column(name="updated_at", type="datetimetz", nullable=true)
*/
private $updatedAt;
/**
* @var \App\Entity\City
*
* @ORM\ManyToOne(targetEntity="App\Entity\City")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="city", referencedColumnName="city_id")
* })
*/
private $city;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="App\Entity\Article", mappedBy="shoppingmalls")
*/
private $articles;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Shop", mappedBy="shoppingMall")
*/
private $shops;
/**
* @ORM\ManyToOne(targetEntity=Operator::class, inversedBy="shoppingMalls")
* @ORM\JoinColumn(name="operator", nullable=true)
*/
private $operator;
/**
* Constructor
*/
public function __construct()
{
$this->articles = new \Doctrine\Common\Collections\ArrayCollection();
}
/************************************************************************************************************/
/****** COLLECTIONS METHODS *********************************************************************************/
/************************************************************************************************************/
/**
* @param \App\Entity\Article $article
* @return bool
*/
public function addArticle(Article $article)
{
return $this->articles->add($article);
}
/**
* @param \App\Entity\Article $article
* @return mixed|null
*/
public function removeArticle(Article $article)
{
return $this->articles->remove($article);
}
/**
* @return \Doctrine\Common\Collections\Collection|\App\Entity\Article[]
*/
public function getArticles(): \Doctrine\Common\Collections\Collection
{
return $this->articles;
}
/**
* @return \Doctrine\Common\Collections\Collection|\App\Entity\Shop[]
*/
public function getShops(): \Doctrine\Common\Collections\Collection
{
return $this->shops;
}
/************************************************************************************************************/
/****** GETTERS & SETTERS ***********************************************************************************/
/************************************************************************************************************/
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return string
*/
public function getMongoId(): string
{
return $this->_id;
}
/**
* @return string
*/
public function getLabel(): ?string
{
return $this->label;
}
/**
* @param string $label
*/
public function setLabel(string $label): void
{
$this->label = $label;
}
/**
* @return string|null
*/
public function getOpeningHr(): ?string
{
return $this->openingHr;
}
/**
* @param string|null $openingHr
*/
public function setOpeningHr(?string $openingHr): void
{
$this->openingHr = $openingHr;
}
/**
* @return string|null
*/
public function getStreet(): ?string
{
return $this->street;
}
/**
* @param string|null $street
*/
public function setStreet(?string $street): void
{
$this->street = $street;
}
/**
* @return string|null
*/
public function getZip(): ?string
{
return $this->zip;
}
/**
* @param string|null $zip
*/
public function setZip(?string $zip): void
{
$this->zip = $zip;
}
/**
* @return integer|null
*/
public function getIsOutlet(): ?int
{
return $this->isOutlet;
}
/**
* @param integer|null $isOutlet
*/
public function setIsOutlet($isOutlet): void
{
$this->isOutlet = $isOutlet;
}
/**
* @return bool|null
*/
public function getIsNew(): ?bool
{
return $this->isNew;
}
/**
* @param bool|null $isOutlet
*/
public function setIsNew(?bool $isNew): void
{
$this->isNew = $isNew;
}
/**
* @return bool|null
*/
public function getIsActive(): ?bool
{
return $this->isActive;
}
/**
* @param bool|null $isActive
*/
public function setIsActive(?bool $isActive): void
{
$this->isActive = $isActive;
}
/**
* @return DateTime|null
*/
public function getIsNewDate(): ?DateTime
{
return $this->isNewDate;
}
/**
* @param DateTime|null $isNewDate
*/
public function setIsNewDate(?DateTime $isNewDate): void
{
$this->isNewDate = $isNewDate;
}
/**
* @return string|null
*/
public function getWww(): ?string
{
return $this->www;
}
/**
* @param string|null $www
*/
public function setWww(?string $www): void
{
$this->www = $www;
}
/**
* @return string|null
*/
public function getApitime(): ?string
{
return $this->apitime;
}
/**
* @param string|null $apitime
*/
public function setApitime(?string $apitime): void
{
$this->apitime = $apitime;
}
/**
* @return string|null
*/
public function getApigeo(): ?string
{
return $this->apigeo;
}
/**
* @param string|null $apigeo
*/
public function setApigeo(?string $apigeo): void
{
$this->apigeo = $apigeo;
}
/**
* @return float|null
*/
public function getLatitude(): ?float
{
return $this->latitude;
}
/**
* @param float|null $latitude
*/
public function setLatitude(?float $latitude): void
{
$this->latitude = $latitude;
}
/**
* @return float|null
*/
public function getLongitude(): ?float
{
return $this->longitude;
}
/**
* @param float|null $longitude
*/
public function setLongitude(?float $longitude): void
{
$this->longitude = $longitude;
}
/**
* @return string|null
*/
public function getSpecialOffer(): ?string
{
return $this->specialOffer;
}
/**
* @param string|null $specialOffer
*/
public function setSpecialOffer(?string $specialOffer): void
{
$this->specialOffer = $specialOffer;
}
/**
* @return \App\Entity\City
*/
public function getCity(): ?\App\Entity\City
{
return $this->city;
}
/**
* @param \App\Entity\City $city
*/
public function setCity(\App\Entity\City $city): void
{
$this->city = $city;
}
/**
* @return DateTime|null
*/
public function getLastSyncTime(): ?DateTime
{
return $this->lastSyncTime;
}
/**
* @param string|null $lastSyncTime
*/
public function setLastSyncTime(?string $lastSyncTime): void
{
$this->lastSyncTime = $lastSyncTime;
}
/**
* @return DateTime|null
*/
public function getCreatedAt(): ?DateTime
{
return $this->createdAt;
}
/**
* @param string|null $createdAt
*/
public function setCreatedAt(?string $createdAt): void
{
$this->createdAt = $createdAt;
}
/**
* @return \DateTime|null
*/
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
/**
* @param string|null $updatedAt
*/
public function setUpdatedAt(?string $updatedAt): void
{
$this->updatedAt = $updatedAt;
}
/**
* Return data in array. Used by REST API
*
* @return array
*/
public function toArray()
{
return [
'id' => $this->getId(),
'label' => $this->getLabel(),
'street' => $this->getStreet(),
'city' => ($this->getCity() ? $this->getCity()->getId() : -1),
'zip' => $this->getZip(),
'openingHr' => $this->getOpeningHr(),
];
}
public function __toString()
{
return (string)$this->getLabel();
}
public function getOperator(): ?Operator
{
return $this->operator;
}
public function setOperator(?Operator $operator): self
{
$this->operator = $operator;
return $this;
}
}