<?php

namespace OfficeBrain\Bundle\OrderBundle\Entity;

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

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

    /**
     * @ORM\OneToOne(targetEntity="OrderVariationMaster", inversedBy="orderVariationMapping")
     * @ORM\JoinColumn(name="variation_master_id", referencedColumnName="id")
     */
    private $variationMasterId;
    
    /**
     * @ORM\OneToMany(targetEntity="OrderVariationDetail", mappedBy="variationMappingId")
     */
    private $orderVariationDetail;
    
    /**
     * @ORM\OneToMany(targetEntity="OrderVariationQuantity", mappedBy="variationMappingId")
     */
    private $orderVariationQuantity;
    
    public function __construct() {
    	$this->orderVariationDetail = new ArrayCollection();
    	$this->orderVariationQuantity = new ArrayCollection();
    }

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

    /**
     * Set variationMasterId
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationMaster $variationMasterId
     * @return OrderVariationMapping
     */
    public function setVariationMasterId(\OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationMaster $variationMasterId = null)
    {
        $this->variationMasterId = $variationMasterId;

        return $this;
    }

    /**
     * Get variationMasterId
     *
     * @return \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationMaster 
     */
    public function getVariationMasterId()
    {
        return $this->variationMasterId;
    }

    /**
     * Add orderVariationDetail
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationDetail $orderVariationDetail
     * @return OrderVariationMapping
     */
    public function addOrderVariationDetail(\OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationDetail $orderVariationDetail)
    {
        $this->orderVariationDetail[] = $orderVariationDetail;

        return $this;
    }

    /**
     * Remove orderVariationDetail
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationDetail $orderVariationDetail
     */
    public function removeOrderVariationDetail(\OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationDetail $orderVariationDetail)
    {
        $this->orderVariationDetail->removeElement($orderVariationDetail);
    }

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

    /**
     * Add orderVariationQuantity
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationQuantity $orderVariationQuantity
     * @return OrderVariationMapping
     */
    public function addOrderVariationQuantity(\OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationQuantity $orderVariationQuantity)
    {
        $this->orderVariationQuantity[] = $orderVariationQuantity;

        return $this;
    }

    /**
     * Remove orderVariationQuantity
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationQuantity $orderVariationQuantity
     */
    public function removeOrderVariationQuantity(\OfficeBrain\Bundle\OrderBundle\Entity\OrderVariationQuantity $orderVariationQuantity)
    {
        $this->orderVariationQuantity->removeElement($orderVariationQuantity);
    }

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