<?php
namespace App\Entity;
use App\Repository\ParrainageRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ParrainageRepository::class)
*/
class Parrainage
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="datetime_immutable")
*/
private $createdAt;
/**
* @ORM\Column(type="string", length=255)
*/
private $mail;
/**
* @ORM\Column(type="string", length=255)
*/
private $token;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isVisible;
/**
* @ORM\Column(type="datetime")
*/
private $dateLimit;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="parrainages")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\OneToMany(targetEntity=IctusCommande::class, mappedBy="parrainage")
*/
private $ictusCommandes;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $firstname;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $lastname;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $isClick;
public function __construct()
{
$date = new \DateTimeImmutable();
$date->modify('+2 hours');
$this->createdAt = $date;
$this->ictusCommandes = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeImmutable $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getMail(): ?string
{
return $this->mail;
}
public function setMail(string $mail): self
{
$this->mail = $mail;
return $this;
}
public function getToken(): ?string
{
return $this->token;
}
public function setToken(string $token): self
{
$this->token = $token;
return $this;
}
public function isIsVisible(): ?bool
{
return $this->isVisible;
}
public function setIsVisible(?bool $isVisible): self
{
$this->isVisible = $isVisible;
return $this;
}
public function getDateLimit(): ?\DateTimeInterface
{
return $this->dateLimit;
}
public function setDateLimit(\DateTimeInterface $dateLimit): self
{
$this->dateLimit = $dateLimit;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
/**
* @return Collection<int, IctusCommande>
*/
public function getIctusCommandes(): Collection
{
return $this->ictusCommandes;
}
public function addIctusCommande(IctusCommande $ictusCommande): self
{
if (!$this->ictusCommandes->contains($ictusCommande)) {
$this->ictusCommandes[] = $ictusCommande;
$ictusCommande->setParrainage($this);
}
return $this;
}
public function removeIctusCommande(IctusCommande $ictusCommande): self
{
if ($this->ictusCommandes->removeElement($ictusCommande)) {
// set the owning side to null (unless already changed)
if ($ictusCommande->getParrainage() === $this) {
$ictusCommande->setParrainage(null);
}
}
return $this;
}
public function getFirstname(): ?string
{
return $this->firstname;
}
public function setFirstname(?string $firstname): self
{
$this->firstname = $firstname;
return $this;
}
public function getLastname(): ?string
{
return $this->lastname;
}
public function setLastname(?string $lastname): self
{
$this->lastname = $lastname;
return $this;
}
public function getTotalPaiement(): ?float
{
$total = 0;
foreach ($this->getIctusCommandes() as $commande) {
$total += $commande->getTotalCommande();
}
return $total;
}
public function getIsClick(): ?\DateTimeInterface
{
return $this->isClick;
}
public function setIsClick(?\DateTimeInterface $isClick): self
{
$this->isClick = $isClick;
return $this;
}
}