<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
use Doctrine\ORM\Mapping\UniqueConstraint;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Album
*
* @Entity
* @Table(name="products__attributes", uniqueConstraints={
* @UniqueConstraint(name="unique_product_attribute", columns={"product_id", "option_id"})
* })
* @UniqueEntity(
* fields={"product", "option"},
* errorPath="option",
* message="This attribute is already added."
* )
* @HasLifecycleCallbacks
*/
class ProductAttribute extends AbstractEntity
{
/**
* @var Product
*
* @Assert\NotNull
*
* @ManyToOne(targetEntity="Product", inversedBy="productAttributes")
* @JoinColumn(name="product_id", referencedColumnName="id")
*/
private $product;
/**
* @var AttributeOption
*
* @Assert\NotNull
*
* @ManyToOne(targetEntity="AttributeOption", inversedBy="productAttributes")
* @JoinColumn(name="option_id", referencedColumnName="id", nullable=false)
*/
private $option;
/**
* @var bool
*
* @Assert\NotNull
*
* @Column(name="used", type="boolean", nullable=false)
*/
private $used = false;
/**
* @var integer
*
* @Assert\NotNull
*
* @Column(name="multiplier", type="integer")
*/
private $multiplier = 0;
/**
* @var bool
*
* @Assert\NotNull
*
* @Column(name="always", type="boolean")
*/
private $always = false;
public function __construct()
{
parent::__construct();
}
/**
* @return Product
*/
public function getProduct()
{
return $this->product;
}
/**
* @param Product $product
*/
public function setProduct($product)
{
$this->product = $product;
$product->addProductAttribute($this);
}
/**
* @return AttributeOption
*/
public function getOption()
{
return $this->option;
}
/**
* @param AttributeOption $option
*/
public function setOption($option)
{
$this->option = $option;
}
/**
* @return boolean
*/
public function isUsed()
{
return $this->used;
}
/**
* @param boolean $used
*/
public function setUsed($used)
{
$this->used = $used;
}
/**
* @return int
*/
public function getMultiplier()
{
return $this->multiplier;
}
/**
* @param int $multiplier
*/
public function setMultiplier($multiplier)
{
$this->multiplier = $multiplier;
}
/**
* @return boolean
*/
public function isAlways()
{
return $this->always;
}
/**
* @param boolean $always
*/
public function setAlways($always)
{
$this->always = $always;
}
}