<?php

namespace RxConnexionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use RxConnexionBundle\Entity\Base\BaseEntity;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\MaxDepth;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;

/**
 * @ORM\Entity(repositoryClass="RxConnexionBundle\Repository\PatientLetterQuotationRepository")
 * @ORM\Table(name="patient_letter_quotation")
 */

class PatientLetterQuotationEntity extends BaseEntity
{
    /**
     * @ORM\Column(name="title", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $title;

    /**
     * @ORM\Column(name="certificate_no", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $certificateNo;

    /**
     * @ORM\Column(name="id_no", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $idNo;

    /**
     * @ORM\Column(name="diagnosis", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $diagnosis;

    /**
     * @ORM\Column(name="recommended_treatment", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $recommendedTreatment;

    /**
     * @ORM\Column(name="product_one", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $productOne;

    /**
     * @ORM\Column(name="product_two", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $productTwo;

    /**
     * @ORM\Column(name="product_three", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $productThree;

    /**
     * @ORM\Column(name="product_four", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $productFour;

    /**
     * @ORM\Column(name="product_five", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $productFive;

    /**
     * @ORM\Column(name="price_one", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $priceOne;

    /**
     * @ORM\Column(name="price_two", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $priceTwo;

    /**
     * @ORM\Column(name="price_three", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $priceThree;

    /**
     * @ORM\Column(name="price_four", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $priceFour;

    /**
     * @ORM\Column(name="price_five", type="string", nullable=true)
     * @Groups("forAudit")
     */
    protected $priceFive;

    /**
     * @ORM\ManyToOne(targetEntity="PatientLetterEntity", inversedBy="patientLetterQuotations")
     * @ORM\JoinColumn(name="patient_letter_id", referencedColumnName="id")
     */
    protected $patientLetter;

    /**
     * @ORM\OneToMany(targetEntity="RxConnexionBundle\Entity\PatientLetterQuotationProductEntity", mappedBy="patientLetterQuotation", orphanRemoval=true, cascade={"persist", "remove"})
     */
    protected $patientLetterQuotationProducts;


    /**
     * Set createdAt
     *
     * @ORM\PrePersist
     */
    public function setCreatedAtValue()
    {
        parent::setCreatedAtValue();
    }

    public function __construct()
    {

    }

    /*--------------------------------------------------------------------------------------------------------*/
    /*					User Defined Setters and Getters													  */
    /*--------------------------------------------------------------------------------------------------------*/


    /*--------------------------------------------------------------------------------------------------------*/
    /*					Setters and Getters																	  */
    /*--------------------------------------------------------------------------------------------------------*/


    /**
     * Set certificateNo
     *
     * @param string $certificateNo
     *
     * @return PatientLetterQuotationEntity
     */
    public function setCertificateNo($certificateNo)
    {
        $this->certificateNo = $certificateNo;

        return $this;
    }

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

    /**
     * Set idNo
     *
     * @param string $idNo
     *
     * @return PatientLetterQuotationEntity
     */
    public function setIdNo($idNo)
    {
        $this->idNo = $idNo;

        return $this;
    }

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

    /**
     * Set diagnosis
     *
     * @param string $diagnosis
     *
     * @return PatientLetterQuotationEntity
     */
    public function setDiagnosis($diagnosis)
    {
        $this->diagnosis = $diagnosis;

        return $this;
    }

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

    /**
     * Set recommendedTreatment
     *
     * @param string $recommendedTreatment
     *
     * @return PatientLetterQuotationEntity
     */
    public function setRecommendedTreatment($recommendedTreatment)
    {
        $this->recommendedTreatment = $recommendedTreatment;

        return $this;
    }

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

    /**
     * Set patientLetter
     *
     * @param \RxConnexionBundle\Entity\PatientLetterEntity $patientLetter
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPatientLetter(\RxConnexionBundle\Entity\PatientLetterEntity $patientLetter = null)
    {
        $this->patientLetter = $patientLetter;

        return $this;
    }

    /**
     * Get patientLetter
     *
     * @return \RxConnexionBundle\Entity\PatientLetterEntity
     */
    public function getPatientLetter()
    {
        return $this->patientLetter;
    }

    /**
     * Add patientLetterQuotationProduct
     *
     * @param \RxConnexionBundle\Entity\PatientLetterQuotationProductEntity $patientLetterQuotationProduct
     *
     * @return PatientLetterQuotationEntity
     */
    public function addPatientLetterQuotationProduct(\RxConnexionBundle\Entity\PatientLetterQuotationProductEntity $patientLetterQuotationProduct)
    {
        $this->patientLetterQuotationProducts[] = $patientLetterQuotationProduct;

        return $this;
    }

    /**
     * Remove patientLetterQuotationProduct
     *
     * @param \RxConnexionBundle\Entity\PatientLetterQuotationProductEntity $patientLetterQuotationProduct
     */
    public function removePatientLetterQuotationProduct(\RxConnexionBundle\Entity\PatientLetterQuotationProductEntity $patientLetterQuotationProduct)
    {
        $this->patientLetterQuotationProducts->removeElement($patientLetterQuotationProduct);
    }

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

    /**
     * Set productOne
     *
     * @param string $productOne
     *
     * @return PatientLetterQuotationEntity
     */
    public function setProductOne($productOne)
    {
        $this->productOne = $productOne;

        return $this;
    }

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

    /**
     * Set productTwo
     *
     * @param string $productTwo
     *
     * @return PatientLetterQuotationEntity
     */
    public function setProductTwo($productTwo)
    {
        $this->productTwo = $productTwo;

        return $this;
    }

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

    /**
     * Set productThree
     *
     * @param string $productThree
     *
     * @return PatientLetterQuotationEntity
     */
    public function setProductThree($productThree)
    {
        $this->productThree = $productThree;

        return $this;
    }

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

    /**
     * Set productFour
     *
     * @param string $productFour
     *
     * @return PatientLetterQuotationEntity
     */
    public function setProductFour($productFour)
    {
        $this->productFour = $productFour;

        return $this;
    }

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

    /**
     * Set productFive
     *
     * @param string $productFive
     *
     * @return PatientLetterQuotationEntity
     */
    public function setProductFive($productFive)
    {
        $this->productFive = $productFive;

        return $this;
    }

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

    /**
     * Set priceOne
     *
     * @param string $priceOne
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPriceOne($priceOne)
    {
        $this->priceOne = $priceOne;

        return $this;
    }

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

    /**
     * Set priceTwo
     *
     * @param string $priceTwo
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPriceTwo($priceTwo)
    {
        $this->priceTwo = $priceTwo;

        return $this;
    }

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

    /**
     * Set priceThree
     *
     * @param string $priceThree
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPriceThree($priceThree)
    {
        $this->priceThree = $priceThree;

        return $this;
    }

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

    /**
     * Set priceFour
     *
     * @param string $priceFour
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPriceFour($priceFour)
    {
        $this->priceFour = $priceFour;

        return $this;
    }

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

    /**
     * Set priceFive
     *
     * @param string $priceFive
     *
     * @return PatientLetterQuotationEntity
     */
    public function setPriceFive($priceFive)
    {
        $this->priceFive = $priceFive;

        return $this;
    }

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

    /**
     * Set title
     *
     * @param string $title
     *
     * @return PatientLetterQuotationEntity
     */
    public function setTitle($title)
    {
        $this->title = $title;

        return $this;
    }

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