<?php
namespace App\Entity;
use App\Validator\Constraints as AppAssert;
use App\Entity\Product\ConfirmedProduct;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="App\Repository\PriceOptimizedRepository")
* @ORM\Table(name="malys_price_optimized")
* @ORM\HasLifecycleCallbacks()
* @package App\Entity
* @AppAssert\OptimizedPriceDates
*/
class PriceOptimized
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* Many PriceOptimized have One Product
* @var ConfirmedProduct $product
* @ORM\ManyToOne(targetEntity="App\Entity\Product\ConfirmedProduct", inversedBy="optimizedPrices", cascade={"persist"})
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
* @Assert\NotBlank()
* @Assert\Type("App\Entity\Product\ConfirmedProduct")
*/
protected $product;
/**
* Many PriceOptimized have One Customer
* @var Customer $customer
* @ORM\ManyToOne(targetEntity="App\Entity\Customer", inversedBy="optimizedPrices")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id")
* @Assert\NotBlank()
*/
protected $customer;
/**
* @var DateTime
*
* @ORM\Column(name="start", type="datetime", nullable=false)
*/
protected $start;
/**
* @var DateTime
*
* @ORM\Column(name="end", type="datetime", nullable=false)
*/
protected $end;
/**
* @var float
*
* @ORM\Column(name="price", type="float", nullable=false)
*/
protected $price;
public function __clone()
{
$this->id = null;
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getProduct()
{
return $this->product;
}
/**
* @param mixed $product
*/
public function setProduct(ConfirmedProduct $product)
{
$this->product = $product;
}
/**
* @return mixed
*/
public function getCustomer()
{
return $this->customer;
}
/**
* @param mixed $customer
*/
public function setCustomer($customer)
{
$this->customer = $customer;
}
/**
* @return DateTime
*/
public function getStart()
{
return $this->start;
}
/**
* @param DateTime $start
*/
public function setStart($start)
{
$start->setTime(0, 0, 0);
$this->start = $start;
}
/**
* @return DateTime
*/
public function getEnd()
{
return $this->end;
}
/**
* @param DateTime $end
*/
public function setEnd($end)
{
$end->setTime(0, 0, 0);
$this->end = $end;
}
/**
* @return float
*/
public function getPrice()
{
return $this->price;
}
/**
* @param float $price
*/
public function setPrice($price)
{
$this->price = $price;
}
public function getCustomerId()
{
return $this->customer->getId();
}
}