<?php

namespace OfficeBrain\Bundle\RequestQuoteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * RequestQuoteProduct
 *
 * @ORM\Table("tbl_request_quote_product", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteProductRepository")
 */
class RequestQuoteProduct
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint",length=20 ,options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var integer
     * @ORM\ManyToOne(targetEntity="RequestQuoteItemLine", inversedBy="requestQuoteProduct")  
     * @ORM\JoinColumn(name="request_quote_item_line_id", referencedColumnName="id")
     */
    private $requestQuoteItemLineId;

    /**
     * @var integer
     *
     * @ORM\Column(name="order_master_id", type="bigint",length=20 ,options={"unsigned"=true}, nullable=true)
     */
    private $orderMasterId;

    /**
     * @var integer
     *
     * @ORM\Column(name="product_id", type="bigint",length=20 ,options={"unsigned"=true}, nullable=true)
     */
    private $productId;

    /**
     * @var integer
     *
     * @ORM\Column(name="culture_product_id", type="bigint",length=20 ,options={"unsigned"=true}, nullable=true)
     */
    private $cultureProductId;

    /**
     * @ORM\OneToOne(targetEntity="RequestQuoteShippingDetail", mappedBy="requestQuoteProductId")
     */
    private $requestQuoteShippingDetail;
    
    /**
     * @ORM\OneToMany(targetEntity="RequestQuoteVariationMaster", mappedBy="requestQuoteProductId")
     */
    private $requestQuoteVariationMaster;
    
    public function __construct() {
    	$this -> requestQuoteVariationMaster = new ArrayCollection();
    }
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set requestQuoteItemLineId
     *
     * @param integer $orderItemLineId
     * @return RequestQuoteProduct
     */
    public function setRequestQuoteItemLineId($requestQuoteItemLineId)
    {
        $this->requestQuoteItemLineId = $requestQuoteItemLineId;

        return $this;
    }

    /**
     * Get requestQuoteItemLineId
     *
     * @return integer 
     */
    public function getRequestQuoteItemLineId()
    {
        return $this->requestQuoteItemLineId;
    }

    /**
     * Set orderMasterId
     *
     * @param integer $orderMasterId
     * @return RequestQuoteProduct
     */
    public function setOrderMasterId($orderMasterId)
    {
        $this->orderMasterId = $orderMasterId;

        return $this;
    }

    /**
     * Get orderMasterId
     *
     * @return integer 
     */
    public function getOrderMasterId()
    {
        return $this->orderMasterId;
    }

    /**
     * Set productId
     *
     * @param integer $productId
     * @return RequestQuoteProduct
     */
    public function setProductId($productId)
    {
        $this->productId = $productId;

        return $this;
    }

    /**
     * Get productId
     *
     * @return integer 
     */
    public function getProductId()
    {
        return $this->productId;
    }

    /**
     * Set cultureProductId
     *
     * @param integer $cultureProductId
     * @return RequestQuoteProduct
     */
    public function setCultureProductId($cultureProductId)
    {
        $this->cultureProductId = $cultureProductId;

        return $this;
    }

    /**
     * Get cultureProductId
     *
     * @return integer 
     */
    public function getCultureProductId()
    {
        return $this->cultureProductId;
    }

    /**
     * Set requestQuoteShippingDetail
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteShippingDetail $requestQuoteShippingDetail
     * @return RequestQuoteProduct
     */
    public function setRequestQuoteShippingDetail(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteShippingDetail $requestQuoteShippingDetail = null)
    {
        $this->requestQuoteShippingDetail = $requestQuoteShippingDetail;

        return $this;
    }

    /**
     * Get requestQuoteShippingDetail
     *
     * @return \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteShippingDetail 
     */
    public function getRequestQuoteShippingDetail()
    {
        return $this->requestQuoteShippingDetail;
    }

    /**
     * Add requestQuoteVariationMaster
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationMaster $requestQuoteVariationMaster
     * @return RequestQuoteProduct
     */
    public function addRequestQuoteVariationMaster(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationMaster $requestQuoteVariationMaster)
    {
        $this->requestQuoteVariationMaster[] = $requestQuoteVariationMaster;

        return $this;
    }

    /**
     * Remove requestQuoteVariationMaster
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationMaster $requestQuoteVariationMaster
     */
    public function removeRequestQuoteVariationMaster(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationMaster $requestQuoteVariationMaster)
    {
        $this->requestQuoteVariationMaster->removeElement($requestQuoteVariationMaster);
    }

    /**
     * Get requestQuoteVariationMaster
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getRequestQuoteVariationMaster()
    {
        return $this->requestQuoteVariationMaster;
    }
}
