<?php

namespace OfficeBrain\Bundle\RequestQuoteBundle\Entity;

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

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

    /**
     * @var integer
     * @ORM\OneToOne(targetEntity="RequestQuoteVariationMaster", inversedBy="requestQuoteVariationMapping")
     * @ORM\JoinColumn(name="variation_master_id", referencedColumnName="id")
     */
    private $variationMasterId;
    
    /**
     * @ORM\OneToMany(targetEntity="RequestQuoteVariationDetail", mappedBy="variationMappingId")
     */
    private $requestQuoteVariationDetail;
    
    /**
     * @ORM\OneToMany(targetEntity="RequestQuoteVariationQuantity", mappedBy="variationMappingId")
     */
    private $requestQuoteVariationQuantity;
    
    public function __construct() {
    	$this->requestQuoteVariationDetail = new ArrayCollection();
    	$this->requestQuoteVariationQuantity = new ArrayCollection();
    }

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

    /**
     * Set variationMasterId
     *
     * @param integer $variationMasterId
     * @return RequestQuoteVariationMapping
     */
    public function setVariationMasterId($variationMasterId)
    {
        $this->variationMasterId = $variationMasterId;

        return $this;
    }

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

    /**
     * Add requestQuoteVariationDetail
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationDetail $requestQuoteVariationDetail
     * @return RequestQuoteVariationMapping
     */
    public function addRequestQuoteVariationDetail(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationDetail $requestQuoteVariationDetail)
    {
        $this->requestQuoteVariationDetail[] = $requestQuoteVariationDetail;

        return $this;
    }

    /**
     * Remove requestQuoteVariationDetail
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationDetail $requestQuoteVariationDetail
     */
    public function removeRequestQuoteVariationDetail(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationDetail $requestQuoteVariationDetail)
    {
        $this->requestQuoteVariationDetail->removeElement($requestQuoteVariationDetail);
    }

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

    /**
     * Add requestQuoteVariationQuantity
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationQuantity $requestQuoteVariationQuantity
     * @return RequestQuoteVariationMapping
     */
    public function addRequestQuoteVariationQuantity(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationQuantity $requestQuoteVariationQuantity)
    {
        $this->requestQuoteVariationQuantity[] = $requestQuoteVariationQuantity;

        return $this;
    }

    /**
     * Remove requestQuoteVariationQuantity
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationQuantity $requestQuoteVariationQuantity
     */
    public function removeRequestQuoteVariationQuantity(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteVariationQuantity $requestQuoteVariationQuantity)
    {
        $this->requestQuoteVariationQuantity->removeElement($requestQuoteVariationQuantity);
    }

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