<?php
namespace App\GamificationBundle\Entity;
use App\CasinoBundle\Entity\NewBonus;
use App\CmsBundle\Entity\TimeStampedTrait;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(
* name="visitor_bonus",
* uniqueConstraints={@ORM\UniqueConstraint(name="unique_visitor_bonus", columns={"visitor_id", "bonus_id"})}
* )
*
* @ORM\Entity(repositoryClass="App\GamificationBundle\Repository\VisitorBonusRepository")
*/
class VisitorBonus
{
use TimeStampedTrait;
/**
* @ORM\Column(name="id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private int $id;
/**
* @ORM\Column(name="is_mystery", type="boolean", nullable=false, options={"default"=false})
*/
private bool $isMystery = false;
/**
* @ORM\ManyToOne(
* targetEntity="App\GamificationBundle\Entity\Visitor",
* inversedBy="ownedBonuses"
* )
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private ?Visitor $visitor = null;
/**
* @ORM\ManyToOne(
* targetEntity="App\CasinoBundle\Entity\NewBonus",
* inversedBy="bonusOwnersVisitors"
* )
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private ?NewBonus $bonus = null;
/**
* @return bool
*/
public function isMystery(): bool
{
return $this->isMystery;
}
/**
* @param bool $isMystery
* @return $this
*/
public function setIsMystery(bool $isMystery): self
{
$this->isMystery = $isMystery;
return $this;
}
/**
* @return ?Visitor
*/
public function getVisitor(): ?Visitor
{
return $this->visitor;
}
/**
* @param ?Visitor $visitor
* @return $this
*/
public function setVisitor(?Visitor $visitor): self
{
$this->visitor = $visitor;
return $this;
}
/**
* @return ?NewBonus
*/
public function getBonus(): ?NewBonus
{
return $this->bonus;
}
/**
* @param ?NewBonus $bonus
* @return $this
*/
public function setBonus(?NewBonus $bonus): self
{
$this->bonus = $bonus;
return $this;
}
}