<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Util\UUIDGeneratorUtil;
/**
* Description of PtsAdquiRedemRules
* @author aealan
* @ORM\HasLifecycleCallbacks()
* @ORM\Table(name="ptar_adqui_redem_rules")
* @ORM\Entity(repositoryClass="App\Repository\PtsAdquiRedemRulesRepository")
*/
class PtsAdquiRedemRules {
const LICENSE_STATUS_PENDING = 0;
const LICENSE_STATUS_ACTIVE = 1;
const LICENSE_STATUS_INACTIVE = 2;
const DEVICE_ANDROID_TYPE = 0;
const DEVICE_LITE_TYPE = 1;
const DEVICE_HYBRID_TYPE = 2;
/**
* @var integer
* @ORM\Column(name="ptar_id", type="guid")
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $id;
/**
* @var string
* @ORM\Column(name="ptar_name", type="string", length=100, nullable=false)
*/
private $name;
/**
* @var string
* @ORM\Column(name="ptar_pts_rate", type="decimal", precision=10, scale=2)
*/
private $ptsRate;
/**
* @var string
* @ORM\Column(name="ptar_watchable_objetc", type="string", length=100, nullable=true)
*/
private $watchableObject;
/**
* @var string
* @ORM\Column(name="ptar_apply_to_specific_record", type="guid", nullable=true)
*/
private $applyToSpecificRecord;
/**
* @var string
* @ORM\Column(name="ptar_just_claim_once", type="boolean", nullable=true)
*/
private $justClaimOnce = false;
/**
* @var \DateTime
* @ORM\Column(name="ptar_creation_date", type="datetime", nullable=false)
*/
private $creationDate;
/**
* @var \DateTime
* @ORM\Column(name="ptar_update_date", type="datetime", nullable=true)
*/
private $updateDate;
/**
* @var \DateTime
* @ORM\Column(name="ptar_delete_date", type="datetime", nullable=true)
*/
private $deleteDate;
/**
* @var \DateTime
* @ORM\Column(name="ptar_initial_activation_date", type="datetime", nullable=false)
*/
private $initialActivationDate;
/**
* @var \DateTime
* @ORM\Column(name="ptar_final_activation_date", type="datetime", nullable=true)
*/
private $finalActivationDate;
/**
* @var \App\Entity\TypePtsGenericDefinitionRules
* @ORM\ManyToOne(targetEntity="App\Entity\TypePtsGenericDefinitionRules")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ptar_basic_definition", referencedColumnName="pgdr_id")
* })
*/
private $basicDefinition;
/**
* @var \App\Entity\PtsAdquiRedemRules
* @ORM\ManyToOne(targetEntity="App\Entity\PtsAdquiRedemRules")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ptar_parent_definition", referencedColumnName="ptar_id", nullable=true)
* })
*/
private $parentDefinition;
/**
* @var \App\Entity\AccountLicense
* @ORM\ManyToOne(targetEntity="App\Entity\AccountLicense")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ptar_license", referencedColumnName="al_id", nullable=true, onDelete="CASCADE")
* })
*/
private $license;
/**
* @var \App\Entity\TypePoint
* @ORM\ManyToOne(targetEntity="App\Entity\TypePoint")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ptar_pt_type", referencedColumnName="tp_id", onDelete="CASCADE")
* })
*/
private $pointType;
/**
* @var string
* @ORM\Column(name="ptar_minimum_purchase", type="decimal", precision=10, scale=2, nullable=true, options={"default":0})
*/
private $minimumPurchase = 0;
/**
* @var string
* @ORM\Column(name="ptar_minimum_purchase_quantity", type="integer", nullable=true)
*/
private $minimumQuantityPurchase;
/**
* An specific amount of points depending in the achivement of sertain action by the user
* @var integer
* @ORM\Column(name="ptar_just_get_these_pts", type="integer", nullable=true)
*/
private $justGetThesePoints;
/**
* @return type
*/
public function getId() {
return $this->id;
}
/**
* @return type
*/
public function getJustGetThesePoints() {
return $this->justGetThesePoints;
}
/**
* @param type $justGetThesePoints
*/
public function setJustGetThesePoints($justGetThesePoints) {
$this->justGetThesePoints = $justGetThesePoints;
}
/**
* @return type
*/
public function getMinimumPurchase() {
return $this->minimumPurchase;
}
/**
* @return type
*/
public function getMinimumQuantityPurchase() {
return $this->minimumQuantityPurchase;
}
/**
* @param type $minimumPurchase
*/
public function setMinimumPurchase($minimumPurchase) {
$this->minimumPurchase = $minimumPurchase;
}
/**
* @param type $minimumQuantityPurchase
*/
public function setMinimumQuantityPurchase($minimumQuantityPurchase) {
$this->minimumQuantityPurchase = $minimumQuantityPurchase;
}
/**
* @return \App\Entity\TypePoint
*/
public function getPointType(): \App\Entity\TypePoint {
return $this->pointType;
}
/**
* @param \App\Entity\TypePoint $pointType
*/
public function setPointType(\App\Entity\TypePoint $pointType) {
$this->pointType = $pointType;
}
/**
* @return type
*/
public function getName() {
return $this->name;
}
/**
* @return type
*/
public function getPtsRate() {
return $this->ptsRate;
}
/**
* @return type
*/
public function getWatchableObject() {
return $this->watchableObject;
}
/**
* @return type
*/
public function getApplyToSpecificRecord() {
return $this->applyToSpecificRecord;
}
/**
* @return type
*/
public function getJustClaimOnce() {
return $this->justClaimOnce;
}
/**
* @return \DateTime
*/
public function getCreationDate(): \DateTime {
return $this->creationDate;
}
/**
* @return \DateTime
*/
public function getUpdateDate(): \DateTime {
return $this->updateDate;
}
/**
* @return \DateTime
*/
public function getDeleteDate(): \DateTime {
return $this->deleteDate;
}
/**
* @return \DateTime
*/
public function getInitialActivationDate(): \DateTime {
return $this->initialActivationDate;
}
/**
* @return \DateTime
*/
public function getFinalActivationDate(): \DateTime {
return $this->finalActivationDate;
}
/**
* @return \App\Entity\TypePtsGenericDefinitionRules
*/
public function getBasicDefinition(): \App\Entity\TypePtsGenericDefinitionRules {
return $this->basicDefinition;
}
/**
* @return \App\Entity\PtsAdquiRedemRules
*/
public function getParentDefinition() {
return $this->parentDefinition;
}
/**
* @return \App\Entity\AccountLicense
*/
public function getLicense(): \App\Entity\AccountLicense {
return $this->license;
}
/**
* @param type $id
*/
public function setId($id) {
$this->id = $id;
}
/**
* @param type $name
*/
public function setName($name) {
$this->name = $name;
}
/**
* @param type $ptsRate
*/
public function setPtsRate($ptsRate) {
$this->ptsRate = $ptsRate;
}
/**
* @param type $watchableObject
*/
public function setWatchableObject($watchableObject) {
$this->watchableObject = $watchableObject;
}
/**
* @param type $applyToSpecificRecord
*/
public function setApplyToSpecificRecord($applyToSpecificRecord) {
$this->applyToSpecificRecord = $applyToSpecificRecord;
}
/**
* @param type $justClaimOnce
*/
public function setJustClaimOnce($justClaimOnce) {
$this->justClaimOnce = $justClaimOnce;
}
/**
* @param \DateTime $creationDate
*/
public function setCreationDate(\DateTime $creationDate) {
$this->creationDate = $creationDate;
}
/**
* @param \DateTime $updateDate
*/
public function setUpdateDate(\DateTime $updateDate = null) {
$this->updateDate = $updateDate;
}
/**
* @param \DateTime $deleteDate
*/
public function setDeleteDate(\DateTime $deleteDate = null) {
$this->deleteDate = $deleteDate;
}
/**
* @param \DateTime $initialActivationDate
*/
public function setInitialActivationDate(\DateTime $initialActivationDate) {
$this->initialActivationDate = $initialActivationDate;
}
/**
* @param \DateTime $finalActivationDate
*/
public function setFinalActivationDate(\DateTime $finalActivationDate = null) {
$this->finalActivationDate = $finalActivationDate;
}
/**
* @param \App\Entity\TypePtsGenericDefinitionRules $basicDefinition
*/
public function setBasicDefinition(\App\Entity\TypePtsGenericDefinitionRules $basicDefinition) {
$this->basicDefinition = $basicDefinition;
}
/**
* @param \App\Entity\PtsAdquiRedemRules $parentDefinition
*/
public function setParentDefinition(\App\Entity\PtsAdquiRedemRules $parentDefinition = null) {
$this->parentDefinition = $parentDefinition;
}
/**
* @param \App\Entity\AccountLicense $license
*/
public function setLicense(\App\Entity\AccountLicense $license = null) {
$this->license = $license;
}
/**
* @ORM\PrePersist
*/
public function syncPrePersist() {
if (!$this->id) {
$newUUID = UUIDGeneratorUtil::getUUIDv4();
$this->setId($newUUID);
}
}
/**
* @return type
*/
public function showEverything() {
return get_object_vars($this);
}
/**
* @return type
*/
public function __toString() {
return $this->name;
}
}