<?php

namespace OfficeBrain\Bundle\RequestQuoteBundle\Entity;

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


/**
 * RequestQuoteMaster
 *
 * @ORM\Table(name="tbl_request_quote_master", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteMasterRepository")
 * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)

 */
class RequestQuoteMaster
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id",type="bigint",length=20 ,options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

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

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

    /**
     * @var text
     *
     * @ORM\Column(name="culture", type="text", length=60, nullable=true)
     */
    private $culture = 'en_us';
    
    /**
     * @var string
     *
     * @ORM\Column(name="user_type", type="string", length=255, nullable=true)
     */
    private $userType;

    /**
     * @var string
     *
     * @ORM\Column(name="note", type="string", length=255, nullable=true)
     */
    private $note;

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

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

    /**
     * @var string
     *
     * @ORM\Column(name="zip_code", type="string", length=255, nullable=true)
     */
    private $zipCode;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="on_hand_date", type="datetime",nullable=true)
     */
    private $onHandDate;

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

    /**
     * @var boolean
     *
     * @ORM\Column(name="is_mail_sent", type="boolean",options={"default" = false})
     */
    private $isMailSent;

    /**
     * @var string
     *
     * @ORM\Column(name="secret_key", type="string", length=255, nullable=true)
     */
    private $secretKey;

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

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

    /**
     * @var string
     *
     * @ORM\Column(name="instance_type",type="string", length=255, nullable=true)
     */
    private $instanceType;

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

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

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

    /**
     * @var \DateTime @Gedmo\Timestampable(on="create")
     * @ORM\Column(name="created_at", type="datetime",nullable=true)
     */
    private $createdAt;

    /**
     * @var \DateTime @Gedmo\Timestampable(on="update")
     * @ORM\Column(name="updated_at", type="datetime",nullable=true)
     */
    private $updatedAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="deleted_at", type="datetime" ,nullable=true)
     */
    private $deletedAt;

    /**
     * @ORM\OneToOne(targetEntity="RequestQuoteBillingDetail", mappedBy="requestQuoteMasterId")
     */
    private $requestQuoteBillingDetail;
    
    /**
     * @ORM\OneToMany(targetEntity="RequestQuoteComment", mappedBy="requestQuoteMasterId")
     */
    private $requestQuoteComment;
    
    /**
     * @ORM\OneToMany(targetEntity="RequestQuoteItemLine", mappedBy="requestQuoteMasterId")
     */
    private $requestQuoteItemLine;
    
    
    public function __construct() {
    	$this -> requestQuoteComment = new ArrayCollection();
    	$this -> requestQuoteItemLine = new ArrayCollection();
    }
    
    
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set userId
     *
     * @param integer $userId
     * @return RequestQuoteMaster
     */
    public function setUserId($userId)
    {
        $this->userId = $userId;

        return $this;
    }

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

/**
     * Set erpId
     *
     * @param integer $erpId
     * @return RequestQuoteMaster
     */
    public function setErpId($erpId)
    {
        $this->erpId = $erpId;

        return $this;
    }

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

    /**
     * Set guestId
     *
     * @param integer $guestId
     * @return RequestQuoteMaster
     */
    public function setGuestId($guestId)
    {
        $this->guestId = $guestId;

        return $this;
    }

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

    /**
     * Set userType
     *
     * @param string $userType
     * @return RequestQuoteMaster
     */
    public function setUserType($userType)
    {
        $this->userType = $userType;

        return $this;
    }

    /**
     * Get userType
     *
     * @return string 
     */
    public function getUserType()
    {
        return $this->userType;
    }

    /**
     * Set note
     *
     * @param string $note
     * @return RequestQuoteMaster
     */
    public function setNote($note)
    {
        $this->note = $note;

        return $this;
    }

    /**
     * Get note
     *
     * @return string 
     */
    public function getNote()
    {
        return $this->note;
    }

    /**
     * Set prefferedState
     *
     * @param integer $prefferedState
     * @return RequestQuoteMaster
     */
    public function setPrefferedState($prefferedState)
    {
        $this->prefferedState = $prefferedState;

        return $this;
    }

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

    /**
     * Set prefferedDistributorId
     *
     * @param integer $prefferedDistributorId
     * @return RequestQuoteMaster
     */
    public function setPrefferedDistributorId($prefferedDistributorId)
    {
        $this->prefferedDistributorId = $prefferedDistributorId;

        return $this;
    }

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

    /**
     * Set zipCode
     *
     * @param string $zipCode
     * @return RequestQuoteMaster
     */
    public function setZipCode($zipCode)
    {
        $this->zipCode = $zipCode;

        return $this;
    }

    /**
     * Get zipCode
     *
     * @return string 
     */
    public function getZipCode()
    {
        return $this->zipCode;
    }

    /**
     * Set onHandDate
     *
     * @param \DateTime $onHandDate
     * @return RequestQuoteMaster
     */
    public function setOnHandDate($onHandDate)
    {
        $this->onHandDate = $onHandDate;

        return $this;
    }

    /**
     * Get onHandDate
     *
     * @return \DateTime 
     */
    public function getOnHandDate()
    {
        return $this->onHandDate;
    }

    /**
     * Set couponId
     *
     * @param integer $couponId
     * @return RequestQuoteMaster
     */
    public function setCouponId($couponId)
    {
        $this->couponId = $couponId;

        return $this;
    }

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

    /**
     * Set isMailSent
     *
     * @param boolean $isMailSent
     * @return RequestQuoteMaster
     */
    public function setIsMailSent($isMailSent)
    {
        $this->isMailSent = $isMailSent;

        return $this;
    }

    /**
     * Get isMailSent
     *
     * @return boolean 
     */
    public function getIsMailSent()
    {
        return $this->isMailSent;
    }

    /**
     * Set secretKey
     *
     * @param string $secretKey
     * @return RequestQuoteMaster
     */
    public function setSecretKey($secretKey)
    {
        $this->secretKey = $secretKey;

        return $this;
    }

    /**
     * Get secretKey
     *
     * @return string 
     */
    public function getSecretKey()
    {
        return $this->secretKey;
    }

    /**
     * Set quoteId
     *
     * @param integer $quoteId
     * @return RequestQuoteMaster
     */
    public function setQuoteId($quoteId)
    {
        $this->quoteId = $quoteId;

        return $this;
    }

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

    /**
     * Set instanceId
     *
     * @param integer $instanceId
     * @return RequestQuoteMaster
     */
    public function setInstanceId($instanceId)
    {
        $this->instanceId = $instanceId;

        return $this;
    }

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

    /**
     * Set instanceType
     *
     * @param string $instanceType
     * @return RequestQuoteMaster
     */
    public function setInstanceType($instanceType)
    {
        $this->instanceType = $instanceType;

        return $this;
    }

    /**
     * Get instanceType
     *
     * @return string 
     */
    public function getInstanceType()
    {
        return $this->instanceType;
    }

    /**
     * Set createdUid
     *
     * @param integer $createdUid
     * @return RequestQuoteMaster
     */
    public function setCreatedUid($createdUid)
    {
        $this->createdUid = $createdUid;

        return $this;
    }

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

    /**
     * Set updatedUid
     *
     * @param integer $updatedUid
     * @return RequestQuoteMaster
     */
    public function setUpdatedUid($updatedUid)
    {
        $this->updatedUid = $updatedUid;

        return $this;
    }

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

    /**
     * Set deletedUid
     *
     * @param integer $deletedUid
     * @return RequestQuoteMaster
     */
    public function setDeletedUid($deletedUid)
    {
        $this->deletedUid = $deletedUid;

        return $this;
    }

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

    /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     * @return RequestQuoteMaster
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;

        return $this;
    }

    /**
     * Get createdAt
     *
     * @return \DateTime 
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     * @return RequestQuoteMaster
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime 
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set deletedAt
     *
     * @param \DateTime $deletedAt
     * @return RequestQuoteMaster
     */
    public function setDeletedAt($deletedAt)
    {
        $this->deletedAt = $deletedAt;

        return $this;
    }

    /**
     * Get deletedAt
     *
     * @return \DateTime 
     */
    public function getDeletedAt()
    {
        return $this->deletedAt;
    }

    /**
     * Set requestQuoteBillingDetail
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteBillingDetail $requestQuoteBillingDetail
     * @return RequestQuoteMaster
     */
    public function setRequestQuoteBillingDetail(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteBillingDetail $requestQuoteBillingDetail = null)
    {
        $this->requestQuoteBillingDetail = $requestQuoteBillingDetail;

        return $this;
    }

    /**
     * Get requestQuoteBillingDetail
     *
     * @return \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteBillingDetail 
     */
    public function getRequestQuoteBillingDetail()
    {
        return $this->requestQuoteBillingDetail;
    }

    /**
     * Add requestQuoteComment
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteComment $requestQuoteComment
     * @return RequestQuoteMaster
     */
    public function addRequestQuoteComment(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteComment $requestQuoteComment)
    {
        $this->requestQuoteComment[] = $requestQuoteComment;

        return $this;
    }

    /**
     * Remove requestQuoteComment
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteComment $requestQuoteComment
     */
    public function removeRequestQuoteComment(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteComment $requestQuoteComment)
    {
        $this->requestQuoteComment->removeElement($requestQuoteComment);
    }

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

    /**
     * Add requestQuoteItemLine
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteItemLine $requestQuoteItemLine
     * @return RequestQuoteMaster
     */
    public function addRequestQuoteItemLine(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteItemLine $requestQuoteItemLine)
    {
        $this->requestQuoteItemLine[] = $requestQuoteItemLine;

        return $this;
    }

    /**
     * Remove requestQuoteItemLine
     *
     * @param \OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteItemLine $requestQuoteItemLine
     */
    public function removeRequestQuoteItemLine(\OfficeBrain\Bundle\RequestQuoteBundle\Entity\RequestQuoteItemLine $requestQuoteItemLine)
    {
        $this->requestQuoteItemLine->removeElement($requestQuoteItemLine);
    }

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

    /**
     * Set culture
     *
     * @param string $culture
     * @return RequestQuoteMaster
     */
    public function setCulture($culture)
    {
        $this->culture = $culture;

        return $this;
    }

    /**
     * Get culture
     *
     * @return string 
     */
    public function getCulture()
    {
        return $this->culture;
    }
}
