<?php
namespace App\Entity;
use App\Utility\GuidUtility;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*
* @ORM\Table(
* name="cleverpush_subscriptions",
* indexes={
*
* @ORM\Index(name="subscription_id_idx", columns={"subscription_id"}),
* @ORM\Index(name="users_id_idx", columns={"users_id"})
* }
* )
*/
class CleverpushSubscription
{
public function __construct()
{
$this->users = new ArrayCollection();
}
/**
* @var string
*
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
private $id;
public function getId(): string
{
return $this->id;
}
public function setId(string $id): void
{
GuidUtility::validOrThrow($id);
$this->id = $id;
}
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="cleverpushSubscriptions", cascade={"persist"})
*
* @ORM\JoinColumn(name="users_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
protected $user;
public function setUser(User $user): void
{
$this->user = $user;
}
public function getUser(): User
{
return $this->user;
}
/**
* @var string
*
* @ORM\Column(name="subscription_id", type="string", length=30, nullable=true)
*/
private $subscriptionId;
public function getSubscriptionId(): ?string
{
return $this->subscriptionId;
}
public function setSubscriptionId(?string $subscriptionId): void
{
$this->subscriptionId = $subscriptionId;
}
/**
* @var DateTime
*
* @ORM\Column(name="subscribed_at", type="datetime", nullable=true)
*/
private $subscribedAt;
public function getSubscribedAt(): ?DateTime
{
return $this->subscribedAt;
}
public function setSubscribedAt(?DateTime $subscribedAt): void
{
$this->subscribedAt = $subscribedAt;
}
}