<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\JoinColumn;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Table("MemberContent")
*
* @ORM\Entity(repositoryClass="App\Repository\MemberContentRepository")
*/
class MemberContent
{
/**
* @Groups({"mediacenter"})
*
* @ORM\Id()
*
* @ORM\GeneratedValue()
*
* @ORM\Column(type="integer")
*/
private $id;
/**
* @Groups({"adminindex"})
*
* @ORM\ManyToOne(targetEntity="App\Entity\Member")
*
* @JoinColumn(name="member_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $member;
/**
* @Groups({"mediacenter"})
*
* @ORM\ManyToOne(targetEntity="App\Entity\Content", inversedBy="memberContents")
*
* @JoinColumn(name="content_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $content;
/**
* @Groups({"adminindex", "mediacenter"})
* null = all images
*
* @ORM\Column(type="integer", nullable=true)
*/
private $imageset_image_id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Purchase")
*
* @JoinColumn(name="purchase_id", referencedColumnName="id", onDelete="CASCADE", nullable=true)
*/
private $purchase;
/**
* @Groups({"adminindex"})
*
* @ORM\Column(type="integer", nullable=true)
*/
private $coins;
/**
* @Groups({"adminindex", "mediacenter"})
*
* @ORM\Column(type="integer")
*/
private $views = 0;
/**
* @Groups({"adminindex", "mediacenter"})
*
* @ORM\Column(type="datetime")
*/
private $created_at;
/**
* @Groups({"adminindex", "mediacenter"})
*
* @ORM\Column(type="datetime", nullable=true)
*/
private $watched_at;
public function __construct()
{
$this->setCreatedAt(new \DateTime());
}
public function getId()
{
return $this->id;
}
public function getMember(): ?Member
{
return $this->member;
}
public function setMember(Member $member): self
{
$this->member = $member;
return $this;
}
public function getContent(): ?Content
{
return $this->content;
}
public function setContent(Content $content): self
{
$this->content = $content;
return $this;
}
public function getPurchase(): ?Purchase
{
return $this->purchase;
}
public function setPurchase(?Purchase $purchase): self
{
$this->purchase = $purchase;
return $this;
}
public function getCoins(): ?int
{
return $this->coins;
}
public function setCoins(?int $coins): self
{
$this->coins = $coins;
return $this;
}
public function getViews(): int
{
return $this->views;
}
public function setViews(int $views): self
{
$this->views = $views;
return $this;
}
public function increaseViews(): self
{
++$this->views;
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 getWatchedAt(): ?\DateTimeInterface
{
return $this->watched_at;
}
public function setWatchedAt(\DateTimeInterface $watched_at): self
{
$this->watched_at = $watched_at;
return $this;
}
public function setImagesetImageId(?int $imageId): self
{
if ($imageId <= 0) {
$imageId = null;
}
$this->imageset_image_id = $imageId;
return $this;
}
public function getImagesetImageId(): ?int
{
return $this->imageset_image_id;
}
}