<?php

namespace OfficeBrain\Bundle\ServiceGroupBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * ServiceRuleMappingActions.
 *
 * @ORM\Table(name="tbl_service_rule_mapping_actions")
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\ServiceGroupBundle\Entity\ServiceRuleMappingActionsRepository")
 */
class ServiceRuleMappingActions
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint",length=20, options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="master_rule_type", type="string", length=50)
     */
    private $masterRuleType;

    /**
     * @var int
     *
     * @ORM\ManyToOne(targetEntity="ServiceRuleMappingRules", inversedBy="ruleMapActions")
     * @ORM\JoinColumn(name="rule_mapping_rule_id", referencedColumnName="id")
     */
    private $ruleMappingRuleId;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="start_date", type="date", nullable=true)
     */
    private $startDate;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="end_date", type="date", nullable=true)
     */
    private $endDate;

    /**
     * @var int
     *
     * @ORM\Column(name="rule_type", type="integer")
     */
    private $ruleType;

    /**
     * @var int
     *
     * @ORM\Column(name="amount_type", type="integer")
     */
    private $amountType;

    /**
     * @var float
     *
     * @ORM\Column(name="amount", type="float", precision=10, scale=0, nullable=true)
     */
    private $amount;

    /**
     * @var bool
     *
     * @ORM\Column(name="is_column_qty", type="boolean")
     */
    private $isColumnQty = false;

    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(name="created_at", type="datetime")
     */
    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;

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

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

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

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

    /**
     * Get ruleMappingRuleId.
     *
     * @return int
     */
    public function getRuleMappingRuleId()
    {
        return $this->ruleMappingRuleId;
    }

    /**
     * Set type.
     *
     * @param int $ruleMappingRuleId
     *
     * @return ServiceRuleMappingActions
     */
    public function setRuleMappingRuleId($ruleMappingRuleId)
    {
        $this->ruleMappingRuleId = $ruleMappingRuleId;

        return $this;
    }

    /**
     * Set amountType.
     *
     * @param int $amountType
     *
     * @return ServiceRuleMappingActions
     */
    public function setAmountType($amountType)
    {
        $this->amountType = $amountType;

        return $this;
    }

    /**
     * Get amountType.
     *
     * @return int
     */
    public function getAmountType()
    {
        return $this->amountType;
    }

    /**
     * Set amount.
     *
     * @param float $amount
     *
     * @return ServiceRuleMappingActions
     */
    public function setAmount($amount)
    {
        $this->amount = $amount;

        return $this;
    }

    /**
     * Get amount.
     *
     * @return float
     */
    public function getAmount()
    {
        return $this->amount;
    }

    /**
     * Set updatedAt.
     *
     * @param \DateTime $updatedAt
     *
     * @return ServiceRuleMappingActions
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = ($updatedAt === null) ? new \DateTime() : $updatedAt;

        return $this;
    }

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

    /**
     * Set deletedAt.
     *
     * @param \DateTime $deletedAt
     *
     * @return ServiceRuleMappingActions
     */
    public function setDeletedAt($deletedAt)
    {
        $this->deletedAt = ($deletedAt === null) ? new \DateTime() : $deletedAt;

        return $this;
    }

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

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

        return $this;
    }

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

    /**
     * Set createdUid.
     *
     * @param int $createdUid
     *
     * @return ServiceRuleMappingActions
     */
    public function setCreatedUid($createdUid)
    {
        $this->createdUid = $createdUid;

        return $this;
    }

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

    /**
     * Set updatedUid.
     *
     * @param int $updatedUid
     *
     * @return ServiceRuleMappingActions
     */
    public function setUpdatedUid($updatedUid)
    {
        $this->updatedUid = $updatedUid;

        return $this;
    }

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

    /**
     * Set deletedUid.
     *
     * @param int $deletedUid
     *
     * @return ServiceRuleMappingActions
     */
    public function setDeletedUid($deletedUid)
    {
        $this->deletedUid = $deletedUid;

        return $this;
    }

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

    /**
     * Set startDate.
     *
     * @param \DateTime $startDate
     *
     * @return ServiceRuleMappingActions
     */
    public function setStartDate($startDate)
    {
        $this->startDate = $startDate;

        return $this;
    }

    /**
     * Get startDate.
     *
     * @return \DateTime
     */
    public function getStartDate()
    {
        return $this->startDate;
    }

    /**
     * Set endDate.
     *
     * @param \DateTime $endDate
     *
     * @return ServiceRuleMappingActions
     */
    public function setEndDate($endDate)
    {
        $this->endDate = $endDate;

        return $this;
    }

    /**
     * Get endDate.
     *
     * @return \DateTime
     */
    public function getEndDate()
    {
        return $this->endDate;
    }

    /**
     * Set isColumnQty.
     *
     * @param bool $isColumnQty
     *
     * @return ServiceRuleMappingActions
     */
    public function setIsColumnQty($isColumnQty)
    {
        $this->isColumnQty = $isColumnQty;

        return $this;
    }

    /**
     * Get isColumnQty.
     *
     * @return bool
     */
    public function getIsColumnQty()
    {
        return $this->isColumnQty;
    }

    /**
     * Set masterRuleType.
     *
     * @param string $masterRuleType
     *
     * @return ServiceRuleMappingActions
     */
    public function setMasterRuleType($masterRuleType)
    {
        $this->masterRuleType = $masterRuleType;

        return $this;
    }

    /**
     * Get masterRuleType.
     *
     * @return string
     */
    public function getMasterRuleType()
    {
        return $this->masterRuleType;
    }

    /**
     * Set ruleType.
     *
     * @param int $ruleType
     *
     * @return ServiceRuleMappingActions
     */
    public function setRuleType($ruleType)
    {
        $this->ruleType = $ruleType;

        return $this;
    }

    /**
     * Get ruleType.
     *
     * @return int
     */
    public function getRuleType()
    {
        return $this->ruleType;
    }
}
