src/Entity/ReferralEntity.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
  8. /**
  9.  * @ORM\Entity(repositoryClass="App\Repository\ReferralRepository")
  10.  * @ORM\Table(name="referral")
  11.  * @ORM\HasLifecycleCallbacks()
  12.  */
  13. class ReferralEntity
  14. {
  15.     /**
  16.      * @ORM\Column(type="bigint")
  17.      * @ORM\Id
  18.      * @ORM\GeneratedValue(strategy="AUTO")
  19.      */
  20.     protected $id;
  21.     /**
  22.      * @ORM\Column(name="status", type="string")
  23.      */
  24.     protected $status;
  25.         /**
  26.      * @ORM\Column(name="referrent_email", type="string", nullable =true)
  27.      */
  28.     protected $referrentEmail;
  29.     
  30.     /**
  31.      * @ORM\Column(name="level", type="integer")
  32.      */
  33.     protected $level;
  34.     /**
  35.      * @ORM\Column(name="created_by", type="string", length=50)
  36.      */
  37.     protected $createdBy;
  38.     /**
  39.      * @ORM\Column(name="created_at", type="datetime")
  40.      */
  41.     protected $createdAt;
  42.     /**
  43.      * @ORM\Column(name="updated_by", type="string", length=50)
  44.      */
  45.     protected $updatedBy;
  46.     /**
  47.      * @ORM\Column(name="updated_at", type="datetime")
  48.      */
  49.     protected $updatedAt;
  50.     /**
  51.      * @ORM\OneToOne(targetEntity="UserEntity", inversedBy="referral")
  52.      */
  53.     protected $referrent;
  54.     /**
  55.      * @ORM\ManyToOne(targetEntity="UserEntity", inversedBy="referrals")
  56.      * @ORM\JoinColumn(name="referrer_id", referencedColumnName="id")
  57.      */
  58.     protected $referrer;
  59.     /**
  60.      * @ORM\OneToMany(targetEntity="UserBonusTokenEntity", mappedBy="referral", cascade={"remove"})
  61.      */
  62.     protected $userBonusTokens;
  63.     /**
  64.      * @ORM\OneToMany(targetEntity="UserBonusTokenEntity", mappedBy="secondaryReferral", cascade={"remove"})
  65.      */
  66.     protected $secondaryUserBonusTokens;
  67.     /**
  68.      * @ORM\OneToMany(targetEntity="UserBonusTokenEntity", mappedBy="thirdReferral", cascade={"remove"})
  69.      */
  70.     protected $thirdUserBonusTokens;
  71.     /**
  72.      * Set createdAt
  73.      *
  74.      * @ORM\PrePersist
  75.      */
  76.     public function setCreatedAtValue()
  77.     {
  78.         $this->createdBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
  79.         $this->createdAt = new \DateTime();
  80.         $this->updatedBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
  81.         $this->updatedAt = new \DateTime();
  82.         $this->status 'Completed';
  83.     }
  84.     /**
  85.      *
  86.      * Set updatedAt
  87.      *
  88.      * @ORM\PreUpdate
  89.      */
  90.     public function setUpdatedAtValue()
  91.     {
  92.         $this->updatedBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
  93.         $this->updatedAt = new \DateTime();
  94.         $this->status 'Completed';
  95.     }
  96.     public function __construct($data=null)
  97.     {
  98.         if(!is_null($data)) {
  99.         }
  100.         $this->userBonusTokens = new ArrayCollection();
  101.         $this->secondaryUserBonusTokens = new ArrayCollection();
  102.         $this->thirdUserBonusTokens = new ArrayCollection();
  103.     }
  104.     /*--------------------------------------------------------------------------------------------------------*/
  105.     /*                    User Defined Setters and Getters                                                      */
  106.     /*--------------------------------------------------------------------------------------------------------*/
  107.     /**
  108.      * Get totalEarning
  109.      *
  110.      * @return string
  111.      */
  112.     public function getTotalEarning($type) {
  113.         $earning 0;
  114.             if($type == 'primary'){
  115.                 foreach ($this->userBonusTokens as $bonus){
  116.                     if(in_array($bonus->getBonus()->getCode(), array('PRP','PRSU','TRSU'))){
  117.                         $earning+= $bonus->getAmount();
  118.                     }
  119.                 }
  120.             }
  121.         return $earning;
  122.     }
  123.     /**
  124.      * Get idEncoded
  125.      *
  126.      * @return string
  127.      */
  128.     public function getIdEncoded() {
  129.         return base64_encode($this->id);
  130.     }
  131.     /**
  132.      * Get createdDateAsTime
  133.      *
  134.      * @return string
  135.      */
  136.     public function getCreatedAtAsTime()
  137.     {
  138.         $dttst = new DateTimeToStringTransformer();
  139.         return !empty($this->createdAt) ? strtotime($dttst->transform($this->createdAt)) : 0;
  140.     }
  141.     /**
  142.      * Get createdAtAsString
  143.      *
  144.      * @return string
  145.      */
  146.     public function getCreatedAtAsString() {
  147.         $dttst = new DateTimeToStringTransformer();
  148.         return !empty($this->createdAt) ? date('m/d/Y'strtotime($dttst->transform($this->createdAt))) : '';
  149.     }
  150.     /*--------------------------------------------------------------------------------------------------------*/
  151.     /*                    Setters and Getters                                                                      */
  152.     /*--------------------------------------------------------------------------------------------------------*/
  153.     
  154.     /**
  155.      * Get id.
  156.      *
  157.      * @return int
  158.      */
  159.     public function getId()
  160.     {
  161.         return $this->id;
  162.     }
  163.     /**
  164.      * Set status.
  165.      *
  166.      * @param string $status
  167.      *
  168.      * @return ReferralEntity
  169.      */
  170.     public function setStatus($status)
  171.     {
  172.         $this->status $status;
  173.         return $this;
  174.     }
  175.     /**
  176.      * Get status.
  177.      *
  178.      * @return string
  179.      */
  180.     public function getStatus()
  181.     {
  182.         return $this->status;
  183.     }
  184.     /**
  185.      * Set createdBy.
  186.      *
  187.      * @param string $createdBy
  188.      *
  189.      * @return ReferralEntity
  190.      */
  191.     public function setCreatedBy($createdBy)
  192.     {
  193.         $this->createdBy $createdBy;
  194.         return $this;
  195.     }
  196.     /**
  197.      * Get createdBy.
  198.      *
  199.      * @return string
  200.      */
  201.     public function getCreatedBy()
  202.     {
  203.         return $this->createdBy;
  204.     }
  205.     /**
  206.      * Set createdAt.
  207.      *
  208.      * @param \DateTime $createdAt
  209.      *
  210.      * @return ReferralEntity
  211.      */
  212.     public function setCreatedAt($createdAt)
  213.     {
  214.         $this->createdAt $createdAt;
  215.         return $this;
  216.     }
  217.     /**
  218.      * Get createdAt.
  219.      *
  220.      * @return \DateTime
  221.      */
  222.     public function getCreatedAt()
  223.     {
  224.         return $this->createdAt;
  225.     }
  226.     /**
  227.      * Set updatedBy.
  228.      *
  229.      * @param string $updatedBy
  230.      *
  231.      * @return ReferralEntity
  232.      */
  233.     public function setUpdatedBy($updatedBy)
  234.     {
  235.         $this->updatedBy $updatedBy;
  236.         return $this;
  237.     }
  238.     /**
  239.      * Get updatedBy.
  240.      *
  241.      * @return string
  242.      */
  243.     public function getUpdatedBy()
  244.     {
  245.         return $this->updatedBy;
  246.     }
  247.     /**
  248.      * Set updatedAt.
  249.      *
  250.      * @param \DateTime $updatedAt
  251.      *
  252.      * @return ReferralEntity
  253.      */
  254.     public function setUpdatedAt($updatedAt)
  255.     {
  256.         $this->updatedAt $updatedAt;
  257.         return $this;
  258.     }
  259.     /**
  260.      * Get updatedAt.
  261.      *
  262.      * @return \DateTime
  263.      */
  264.     public function getUpdatedAt()
  265.     {
  266.         return $this->updatedAt;
  267.     }
  268.     /**
  269.      * Set referrer.
  270.      *
  271.      * @param \App\Entity\UserEntity|null $referrer
  272.      *
  273.      * @return ReferralEntity
  274.      */
  275.     public function setReferrer(\App\Entity\UserEntity $referrer null)
  276.     {
  277.         $this->referrer $referrer;
  278.         return $this;
  279.     }
  280.     /**
  281.      * Get referrer.
  282.      *
  283.      * @return \App\Entity\UserEntity|null
  284.      */
  285.     public function getReferrer()
  286.     {
  287.         return $this->referrer;
  288.     }
  289.     /**
  290.      * Set user.
  291.      *
  292.      * @param \App\Entity\UserEntity|null $user
  293.      *
  294.      * @return ReferralEntity
  295.      */
  296.     public function setUser(\App\Entity\UserEntity $user null)
  297.     {
  298.         $this->user $user;
  299.         return $this;
  300.     }
  301.     /**
  302.      * Get user.
  303.      *
  304.      * @return \App\Entity\UserEntity|null
  305.      */
  306.     public function getUser()
  307.     {
  308.         return $this->user;
  309.     }
  310.     /**
  311.      * Add userBonusToken.
  312.      *
  313.      * @param \App\Entity\UserBonusTokenEntity $userBonusToken
  314.      *
  315.      * @return ReferralEntity
  316.      */
  317.     public function addUserBonusToken(\App\Entity\UserBonusTokenEntity $userBonusToken)
  318.     {
  319.         $this->userBonusTokens[] = $userBonusToken;
  320.         return $this;
  321.     }
  322.     /**
  323.      * Remove userBonusToken.
  324.      *
  325.      * @param \App\Entity\UserBonusTokenEntity $userBonusToken
  326.      *
  327.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  328.      */
  329.     public function removeUserBonusToken(\App\Entity\UserBonusTokenEntity $userBonusToken)
  330.     {
  331.         return $this->userBonusTokens->removeElement($userBonusToken);
  332.     }
  333.     /**
  334.      * Get userBonusTokens.
  335.      *
  336.      * @return \Doctrine\Common\Collections\Collection
  337.      */
  338.     public function getUserBonusTokens()
  339.     {
  340.         return $this->userBonusTokens;
  341.     }
  342.     /**
  343.      * Add secondaryUserBonusToken.
  344.      *
  345.      * @param \App\Entity\UserBonusTokenEntity $secondaryUserBonusToken
  346.      *
  347.      * @return ReferralEntity
  348.      */
  349.     public function addSecondaryUserBonusToken(\App\Entity\UserBonusTokenEntity $secondaryUserBonusToken)
  350.     {
  351.         $this->secondaryUserBonusTokens[] = $secondaryUserBonusToken;
  352.         return $this;
  353.     }
  354.     /**
  355.      * Remove secondaryUserBonusToken.
  356.      *
  357.      * @param \App\Entity\UserBonusTokenEntity $secondaryUserBonusToken
  358.      *
  359.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  360.      */
  361.     public function removeSecondaryUserBonusToken(\App\Entity\UserBonusTokenEntity $secondaryUserBonusToken)
  362.     {
  363.         return $this->secondaryUserBonusTokens->removeElement($secondaryUserBonusToken);
  364.     }
  365.     /**
  366.      * Get secondaryUserBonusTokens.
  367.      *
  368.      * @return \Doctrine\Common\Collections\Collection
  369.      */
  370.     public function getSecondaryUserBonusTokens()
  371.     {
  372.         return $this->secondaryUserBonusTokens;
  373.     }
  374.     /**
  375.      * Add thirdUserBonusToken.
  376.      *
  377.      * @param \App\Entity\UserBonusTokenEntity $thirdUserBonusToken
  378.      *
  379.      * @return ReferralEntity
  380.      */
  381.     public function addThirdUserBonusToken(\App\Entity\UserBonusTokenEntity $thirdUserBonusToken)
  382.     {
  383.         $this->thirdUserBonusTokens[] = $thirdUserBonusToken;
  384.         return $this;
  385.     }
  386.     /**
  387.      * Remove thirdUserBonusToken.
  388.      *
  389.      * @param \App\Entity\UserBonusTokenEntity $thirdUserBonusToken
  390.      *
  391.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  392.      */
  393.     public function removeThirdUserBonusToken(\App\Entity\UserBonusTokenEntity $thirdUserBonusToken)
  394.     {
  395.         return $this->thirdUserBonusTokens->removeElement($thirdUserBonusToken);
  396.     }
  397.     /**
  398.      * Get thirdUserBonusTokens.
  399.      *
  400.      * @return \Doctrine\Common\Collections\Collection
  401.      */
  402.     public function getThirdUserBonusTokens()
  403.     {
  404.         return $this->thirdUserBonusTokens;
  405.     }
  406.     public function getLevel()
  407.     {
  408.         return $this->level;
  409.     }
  410.     public function setLevel($level): self
  411.     {
  412.         $this->level $level;
  413.         return $this;
  414.     }
  415.     public function getReferrent(): ?UserEntity
  416.     {
  417.         return $this->referrent;
  418.     }
  419.     public function setReferrent(?UserEntity $referrent): self
  420.     {
  421.         $this->referrent $referrent;
  422.         return $this;
  423.     }
  424.     public function getReferrentEmail(): ?string
  425.     {
  426.         return $this->referrentEmail;
  427.     }
  428.     public function setReferrentEmail(?string $referrentEmail): self
  429.     {
  430.         $this->referrentEmail $referrentEmail;
  431.         return $this;
  432.     }
  433. }