<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\OneToMany;
use Doctrine\ORM\Mapping\Table as Table;
/**
* Review
*
* @Table(name="reviews")
* @Entity(repositoryClass="App\AtechNet\CoreBundle\Repository\ReviewRepository")
*/
class Review extends AbstractSignedEntity
{
public const TYPE_WEB = 1;
public const TYPE_PRODUCT = 2;
/**
* @return array
*/
public static function getTypeChoices()
{
return [
self::TYPE_WEB => 'web',
self::TYPE_PRODUCT => 'product',
];
}
/**
* @var int
*
* @Column(name="type", type="integer")
*/
private $type;
/**
* @var Language
*
* @ManyToOne(targetEntity="Language")
* @JoinColumn(name="language_id", referencedColumnName="id", nullable=false)
*/
private $language;
/**
* @var string
*
* @Column(name="name", type="string", length=255, nullable=true)
*/
private $name;
/**
* @var string
*
* @Column(name="text", type="text", nullable=true)
*/
private $text;
/**
* @var int
*
* @Column(name="stars", type="integer")
*/
private $stars;
/**
* @var bool
*
* @Column(name="approved", type="boolean")
*/
private $approved = false;
/**
* @var bool
*
* @Column(name="show_at_homepage", type="boolean")
*/
private $showAtHomepage = false;
/**
* @var Product
*
* @ManyToOne(targetEntity="Product")
* @JoinColumn(name="product_id", referencedColumnName="id", nullable=true)
*/
private $product;
/**
* @var ArrayCollection
*
* @OneToMany(targetEntity="ReviewSurveyMedia", mappedBy="review")
**/
private $surveyMedias;
/**
* @var Customer
*
* @ManyToOne(targetEntity="Customer", inversedBy="reviews")
* @JoinColumn(name="customer_id", referencedColumnName="id", nullable=true)
*/
private $customer;
/**
* @var Order
*
* @ManyToOne(targetEntity="Order")
* @JoinColumn(name="order_id", referencedColumnName="id", nullable=true)
*/
private $order;
/**
* @return int
*/
public function getType()
{
return $this->type;
}
/**
* @param int $type
*/
public function setType($type)
{
$this->type = $type;
}
/**
* @return Language
*/
public function getLanguage()
{
return $this->language;
}
/**
* @param Language $language
*/
public function setLanguage($language)
{
$this->language = $language;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return string
*/
public function getText()
{
return $this->text;
}
/**
* @param string $text
*/
public function setText($text)
{
$this->text = $text;
}
/**
* @return int
*/
public function getStars()
{
return $this->stars;
}
/**
* @param int $stars
*/
public function setStars($stars)
{
$this->stars = $stars;
}
/**
* @return bool
*/
public function isApproved()
{
return $this->approved;
}
/**
* @param bool $approved
*/
public function setApproved($approved)
{
$this->approved = $approved;
}
/**
* @return bool
*/
public function isShowAtHomepage()
{
return $this->showAtHomepage;
}
/**
* @param bool $showAtHomepage
*/
public function setShowAtHomepage($showAtHomepage)
{
$this->showAtHomepage = $showAtHomepage;
}
/**
* @return Product
*/
public function getProduct()
{
return $this->product;
}
/**
* @param Product $product
*/
public function setProduct($product)
{
$this->product = $product;
}
/**
* @return ArrayCollection
*/
public function getSurveyMedias()
{
return $this->surveyMedias;
}
/**
* @return Customer
*/
public function getCustomer()
{
return $this->customer;
}
/**
* @param Customer $customer
*/
public function setCustomer($customer)
{
$this->customer = $customer;
}
/**
* @return Order|null
*/
public function getOrder(): ?Order
{
return $this->order;
}
/**
* @param Order|null $order
*/
public function setOrder(?Order $order): void
{
$this->order = $order;
}
}