<?php
namespace App\Entity\Core;
use App\Entity\Core\Gamification\GamificationProfile;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use JsonSerializable;
#[ORM\Table('kvik_customization_buy')]
#[ORM\Entity]
class KvikCustomizationBuy implements JsonSerializable
{
/**
* @var int
*/
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private int $id;
/**
* @var KvikCustomization
*/
#[ORM\JoinColumn(name: 'kvik_customization', referencedColumnName: 'id', onDelete: 'CASCADE')]
#[ORM\ManyToOne(targetEntity: KvikCustomization::class)]
private KvikCustomization $kvikCustomization;
/**
* @var GamificationProfile
*/
#[ORM\JoinColumn(name: 'gamification_profile', referencedColumnName: 'id', onDelete: 'CASCADE')]
#[ORM\ManyToOne(targetEntity: GamificationProfile::class)]
private GamificationProfile $gamificationProfile;
/**
* @var DateTime
*/
#[ORM\Column(name: 'bought_at', type: 'datetime')]
private DateTime $boughtAt;
/**
* @var int
*/
#[ORM\Column(name: 'price_paid', type: 'integer')]
private int $pricePaid;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): void
{
$this->id = $id;
}
public function getKvikCustomization(): KvikCustomization
{
return $this->kvikCustomization;
}
public function setKvikCustomization(KvikCustomization $kvikCustomization): void
{
$this->kvikCustomization = $kvikCustomization;
}
public function getGamificationProfile(): GamificationProfile
{
return $this->gamificationProfile;
}
public function setGamificationProfile(GamificationProfile $gamificationProfile): void
{
$this->gamificationProfile = $gamificationProfile;
}
public function getBoughtAt(): DateTime
{
return $this->boughtAt;
}
public function setBoughtAt(DateTime $boughtAt): void
{
$this->boughtAt = $boughtAt;
}
public function getPricePaid(): int
{
return $this->pricePaid;
}
public function setPricePaid(int $pricePaid): void
{
$this->pricePaid = $pricePaid;
}
public function jsonSerialize(): mixed
{
return [
'id' => $this->id,
'kvikCustomization' => $this->kvikCustomization,
'gamificationProfile' => $this->gamificationProfile,
'boughtAt' => $this->boughtAt,
'pricePaid' => $this->pricePaid,
];
}
}