<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Table("MemberRanking")
*
* @ORM\HasLifecycleCallbacks()
*
* @ORM\Entity(repositoryClass="App\Repository\MemberRankingRepository")
*/
class MemberRanking
{
/**
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @Groups({"amateur_search"})
*
* @ORM\Column(type="integer")
*/
private int $like_count = 0;
/**
* @ORM\Column(type="integer")
*/
private int $imageset_count = 0;
/**
* @ORM\Column(type="integer")
*/
private int $videos_count = 0;
/**
* @Groups({"amateur_search"})
*
* @ORM\Column(type="float", nullable=true)
*/
private ?float $amateur_score = 0;
/**
* @Groups({"amateur_search"})
*
* @ORM\Column(type="float")
*/
private float $rank = 0;
/**
* @ORM\Column(type="float", nullable=true)
*/
private ?float $rank_modifier = 1;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Member", cascade={"persist"}, inversedBy="ranking")
*
* @ORM\JoinColumn(name="member", referencedColumnName="id", onDelete="CASCADE", nullable=false)
*/
private ?Member $member = null;
/**
* @ORM\Column(type="datetime")
*/
private $created_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updated_at;
/**
* @ORM\Column(type="integer")
*/
private int $spam_score = 0;
/**
* @ORM\PrePersist()
*/
public function prePersist()
{
if (!$this->getCreatedAt()) {
$this->setCreatedAt(new \DateTime());
}
if (!$this->getUpdatedAt()) {
$this->setUpdatedAt(new \DateTime());
}
}
public function getId(): ?int
{
return $this->id;
}
public function getLikeCount(): ?int
{
return $this->like_count;
}
public function setLikeCount(int $like_count): self
{
$this->like_count = $like_count;
return $this;
}
public function getImagesetCount(): ?int
{
return $this->imageset_count;
}
public function setImagesetCount(int $imageset_count): self
{
$this->imageset_count = $imageset_count;
return $this;
}
public function getVideosCount(): ?int
{
return $this->videos_count;
}
public function setVideosCount(int $videos_count): self
{
$this->videos_count = $videos_count;
return $this;
}
public function getAmateurScore(): ?float
{
return $this->amateur_score;
}
public function setAmateurScore(?float $amateur_score): self
{
$this->amateur_score = $amateur_score;
return $this;
}
public function getRank(): ?float
{
return $this->rank;
}
public function setRank(float $rank): self
{
$this->rank = $rank;
return $this;
}
public function getRankModifier(): ?float
{
return $this->rank_modifier;
}
public function setRankModifier(?float $rank_modifier): self
{
$this->rank_modifier = $rank_modifier;
return $this;
}
public function getMember(): ?Member
{
return $this->member;
}
public function setMember(Member $member): self
{
$this->member = $member;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeInterface $created_at): self
{
$this->created_at = $created_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updated_at;
}
public function setUpdatedAt(\DateTimeInterface $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
public function getSpamScore(): ?int
{
return $this->spam_score;
}
public function setSpamScore(int $spam_score): self
{
$this->spam_score = $spam_score;
return $this;
}
}