<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer;
/**
* @ORM\Entity(repositoryClass="App\Repository\UserOrderTokenRepository")
* @ORM\Table(name="user_order_token")
* @ORM\HasLifecycleCallbacks()
*/
class UserOrderTokenEntity
{
/**
* @ORM\Column(type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="token_value",type="decimal", precision=18, scale=8)
*/
protected $tokenValue;
/**
* @ORM\Column(name="token_amount",type="decimal", precision=18, scale=8)
*/
protected $tokenAmount;
/**
* @ORM\Column(name="amount",type="decimal", precision=18, scale=8)
*/
protected $amount;
/**
* @ORM\Column(name="reminder_status",type="string", nullable=true)
*/
protected $reminderStatus;
/**
* @ORM\Column(name="amount_received",type="decimal", precision=18, scale=8, nullable=true)
*/
protected $amountReceived;
/**
* @ORM\Column(type="string")
*/
protected $address;
/**
* @ORM\Column(type="string")
*/
protected $network;
/**
* @ORM\Column(type="string")
*/
protected $label;
/**
* @ORM\Column(type="string")
*/
protected $status;
/**
* @ORM\Column(type="integer", name="inquiry_sent_ctr")
*/
protected $inquirySentCtr;
/**
* @ORM\Column(name="created_by", type="string", length=50)
*/
protected $createdBy;
/**
* @ORM\Column(name="created_at", type="datetime")
*/
protected $createdAt;
/**
* @ORM\Column(name="updated_by", type="string", length=50)
*/
protected $updatedBy;
/**
* @ORM\Column(name="updated_at", type="datetime")
*/
protected $updatedAt;
/**
* @ORM\ManyToOne(targetEntity="UserEntity", inversedBy="userAccessTokens")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
/**
* @ORM\OneToMany(targetEntity="UserBonusTokenEntity", mappedBy="userOrderToken", cascade={"remove"})
*/
protected $userBonusTokens;
/**
* @ORM\OneToMany(targetEntity="UserEmailEntity", mappedBy="userOrderToken", cascade={"remove"})
*/
protected $userEmails;
/**
* Set createdAt
*
* @ORM\PrePersist
*/
public function setCreatedAtValue()
{
$this->createdBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
$this->createdAt = new \DateTime();
$this->updatedBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
$this->updatedAt = new \DateTime();
$this->status = 'Pending';
$this->inquirySentCtr = 0;
}
/**
* Set updatedAt
*
* @ORM\PreUpdate
*/
public function setUpdatedAtValue()
{
$this->updatedBy = isset($_COOKIE['username']) ? $_COOKIE['username'] : 'System';
$this->updatedAt = new \DateTime();
}
public function __construct($data=null)
{
if(!is_null($data)) {
}
$this->userBonusTokens = new ArrayCollection();
$this->userEmails = new ArrayCollection();
}
/*--------------------------------------------------------------------------------------------------------*/
/* User Defined Setters and Getters */
/*--------------------------------------------------------------------------------------------------------*/
/**
* Get idEncoded
*
* @return string
*/
public function getIdEncoded() {
return base64_encode($this->id);
}
/**
* Get parsedId
*
* @return string
*/
public function getParsedId() {
return sprintf("%06d", $this->id);
}
/**
* Get createdAtAsString
*
* @return string
*/
public function getCreatedAtAsString()
{
$dttst = new DateTimeToStringTransformer();
return !empty($this->createdAt) ? date('m/d/Y', strtotime($dttst->transform($this->createdAt))) : '';
}
/**
* Get createdAtDateAndTimeAsString
*
* @return string
*/
public function getCreatedAtDateAndTimeAsString()
{
$dttst = new DateTimeToStringTransformer();
return !empty($this->createdAt) ? date('m/d/Y H:i', strtotime($dttst->transform($this->createdAt))) : '';
}
/**
* Get totalBonus
*
* @return string
*/
public function totalBonus() {
$total = 0;
foreach ($this->userBonusTokens as $bonus){
$total += $bonus->getAmount();
}
return $total;
}
/*--------------------------------------------------------------------------------------------------------*/
/* Setters and Getters */
/*--------------------------------------------------------------------------------------------------------*/
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set tokenValue.
*
* @param string $tokenValue
*
* @return UserOrderTokenEntity
*/
public function setTokenValue($tokenValue)
{
$this->tokenValue = $tokenValue;
return $this;
}
/**
* Get tokenValue.
*
* @return string
*/
public function getTokenValue()
{
return $this->tokenValue;
}
/**
* Set tokenAmount.
*
* @param string $tokenAmount
*
* @return UserOrderTokenEntity
*/
public function setTokenAmount($tokenAmount)
{
$this->tokenAmount = $tokenAmount;
return $this;
}
/**
* Get tokenAmount.
*
* @return string
*/
public function getTokenAmount()
{
return $this->tokenAmount;
}
/**
* Set amount.
*
* @param string $amount
*
* @return UserOrderTokenEntity
*/
public function setAmount($amount)
{
$this->amount = $amount;
return $this;
}
/**
* Get amount.
*
* @return string
*/
public function getAmount()
{
return $this->amount;
}
/**
* Set reminderStatus.
*
* @param string|null $reminderStatus
*
* @return UserOrderTokenEntity
*/
public function setReminderStatus($reminderStatus = null)
{
$this->reminderStatus = $reminderStatus;
return $this;
}
/**
* Get reminderStatus.
*
* @return string|null
*/
public function getReminderStatus()
{
return $this->reminderStatus;
}
/**
* Set amountReceived.
*
* @param string|null $amountReceived
*
* @return UserOrderTokenEntity
*/
public function setAmountReceived($amountReceived = null)
{
$this->amountReceived = $amountReceived;
return $this;
}
/**
* Get amountReceived.
*
* @return string|null
*/
public function getAmountReceived()
{
return $this->amountReceived;
}
/**
* Set address.
*
* @param string $address
*
* @return UserOrderTokenEntity
*/
public function setAddress($address)
{
$this->address = $address;
return $this;
}
/**
* Get address.
*
* @return string
*/
public function getAddress()
{
return $this->address;
}
/**
* Set network.
*
* @param string $network
*
* @return UserOrderTokenEntity
*/
public function setNetwork($network)
{
$this->network = $network;
return $this;
}
/**
* Get network.
*
* @return string
*/
public function getNetwork()
{
return $this->network;
}
/**
* Set label.
*
* @param string $label
*
* @return UserOrderTokenEntity
*/
public function setLabel($label)
{
$this->label = $label;
return $this;
}
/**
* Get label.
*
* @return string
*/
public function getLabel()
{
return $this->label;
}
/**
* Set status.
*
* @param string $status
*
* @return UserOrderTokenEntity
*/
public function setStatus($status)
{
$this->status = $status;
return $this;
}
/**
* Get status.
*
* @return string
*/
public function getStatus()
{
return $this->status;
}
/**
* Set createdBy.
*
* @param string $createdBy
*
* @return UserOrderTokenEntity
*/
public function setCreatedBy($createdBy)
{
$this->createdBy = $createdBy;
return $this;
}
/**
* Get createdBy.
*
* @return string
*/
public function getCreatedBy()
{
return $this->createdBy;
}
/**
* Set createdAt.
*
* @param \DateTime $createdAt
*
* @return UserOrderTokenEntity
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get createdAt.
*
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* Set updatedBy.
*
* @param string $updatedBy
*
* @return UserOrderTokenEntity
*/
public function setUpdatedBy($updatedBy)
{
$this->updatedBy = $updatedBy;
return $this;
}
/**
* Get updatedBy.
*
* @return string
*/
public function getUpdatedBy()
{
return $this->updatedBy;
}
/**
* Set updatedAt.
*
* @param \DateTime $updatedAt
*
* @return UserOrderTokenEntity
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* Get updatedAt.
*
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
/**
* Set user.
*
* @param \App\Entity\UserEntity|null $user
*
* @return UserOrderTokenEntity
*/
public function setUser(\App\Entity\UserEntity $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user.
*
* @return \App\Entity\UserEntity|null
*/
public function getUser()
{
return $this->user;
}
/**
* @return Collection<int, UserBonusTokenEntity>
*/
public function getUserBonusTokens(): Collection
{
return $this->userBonusTokens;
}
public function addUserBonusToken(UserBonusTokenEntity $userBonusToken): static
{
if (!$this->userBonusTokens->contains($userBonusToken)) {
$this->userBonusTokens->add($userBonusToken);
$userBonusToken->setUserOrderToken($this);
}
return $this;
}
public function removeUserBonusToken(UserBonusTokenEntity $userBonusToken): static
{
if ($this->userBonusTokens->removeElement($userBonusToken)) {
// set the owning side to null (unless already changed)
if ($userBonusToken->getUserOrderToken() === $this) {
$userBonusToken->setUserOrderToken(null);
}
}
return $this;
}
/**
* @return Collection<int, UserEmailEntity>
*/
public function getUserEmails(): Collection
{
return $this->userEmails;
}
public function addUserEmail(UserEmailEntity $userEmail): static
{
if (!$this->userEmails->contains($userEmail)) {
$this->userEmails->add($userEmail);
$userEmail->setUserOrderToken($this);
}
return $this;
}
public function removeUserEmail(UserEmailEntity $userEmail): static
{
if ($this->userEmails->removeElement($userEmail)) {
// set the owning side to null (unless already changed)
if ($userEmail->getUserOrderToken() === $this) {
$userEmail->setUserOrderToken(null);
}
}
return $this;
}
public function getInquirySentCtr(): ?int
{
return $this->inquirySentCtr;
}
public function setInquirySentCtr(int $inquirySentCtr): static
{
$this->inquirySentCtr = $inquirySentCtr;
return $this;
}
}