<?php

namespace OfficeBrain\Bundle\QuoteBundle\Entity;

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

/**
 * QuoteVariationMapping
 *
 * @ORM\Table("tbl_quote_variation_mapping", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationMappingRepository")
 */
class QuoteVariationMapping
{
    /**
     * @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="QuoteVariationMaster", inversedBy="quoteVariationMapping")
     * @ORM\JoinColumn(name="variation_master_id",referencedColumnName="id")
     */
    private $variationMasterId;

    /**
     * 
     * @ORM\OneToMany(targetEntity="QuoteVariationDetail", mappedBy="variationMappingId", cascade={"remove"})
     */
    private $quoteVariationDetail;
    
    /**
     * @ORM\OneToMany(targetEntity="QuoteVariationQuantity", mappedBy="variationMappingId", cascade={"remove"})
     */
    private $quoteVariationQuantity;
    

    public function __construct() {
    	$this -> quoteVariationDetail = new ArrayCollection();
    	$this -> quoteVariationQuantity = new ArrayCollection();
    }
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

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

        return $this;
    }

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

    /**
     * Add quoteVariationDetail
     *
     * @param \OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationDetail $quoteVariationDetail
     * @return QuoteVariationMapping
     */
    public function addQuoteVariationDetail(\OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationDetail $quoteVariationDetail)
    {
        $this->quoteVariationDetail[] = $quoteVariationDetail;

        return $this;
    }

    /**
     * Remove quoteVariationDetail
     *
     * @param \OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationDetail $quoteVariationDetail
     */
    public function removeQuoteVariationDetail(\OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationDetail $quoteVariationDetail)
    {
        $this->quoteVariationDetail->removeElement($quoteVariationDetail);
    }

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

    /**
     * Add quoteVariationQuantity
     *
     * @param \OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationQuantity $quoteVariationQuantity
     * @return QuoteVariationMapping
     */
    public function addQuoteVariationQuantity(\OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationQuantity $quoteVariationQuantity)
    {
        $this->quoteVariationQuantity[] = $quoteVariationQuantity;

        return $this;
    }

    /**
     * Remove quoteVariationQuantity
     *
     * @param \OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationQuantity $quoteVariationQuantity
     */
    public function removeQuoteVariationQuantity(\OfficeBrain\Bundle\QuoteBundle\Entity\QuoteVariationQuantity $quoteVariationQuantity)
    {
        $this->quoteVariationQuantity->removeElement($quoteVariationQuantity);
    }

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