<?php
namespace App\Entity;
use App\Repository\UserDeviceRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=UserDeviceRepository::class)
*/
class UserDevice
{
const IOS = "iOS";
const ANDROID = "Android";
const AMAZON = "Amazon";
const WINDOWSPHONE = "WindowsPhone"; // (MPNS)
const CHROME_APPS = "Chrome Apps"; // Extensions
const CHROME_WEB_PUSH = "Chrome Web Push";
const WINDOWS = "Windows"; // (WNS)
const SAFARI = "Safari";
const FIREFOX = "Firefox";
const MACOS = "MacOS";
const ALEXA = "Alexa";
const EMAIL = "Email";
const HUAWEI = "Huawei";
const SMS = "SMS";
const OS = [
self::IOS,
self::ANDROID,
self::AMAZON,
self::WINDOWSPHONE,
self::CHROME_APPS,
self::CHROME_WEB_PUSH,
self::WINDOWS,
self::SAFARI,
self::FIREFOX,
self::MACOS,
self::ALEXA,
self::EMAIL,
self::HUAWEI,
self::SMS,
];
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=TvUser::class, inversedBy="devices")
*/
private $tvUser;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="devices")
* @Assert\NotNull
*/
private $user;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $os;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $token;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $model;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $osVersion;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $onesignalId;
/**
* @ORM\Column(type="boolean", options={"default": 1})
*/
private $active = true;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $lastActive;
/**
* @ORM\Column(type="datetime", nullable=true)
* @Gedmo\Timestampable(on="create")
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
* @Gedmo\Timestampable(on="update")
*/
private $updatedAt;
public function getId(): ?int
{
return $this->id;
}
public function getTvUser(): ?TvUser
{
return $this->tvUser;
}
public function setTvUser(?TvUser $tvUser): self
{
$this->tvUser = $tvUser;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getOs(): ?string
{
return $this->os;
}
public function setOs(string $os): self
{
$this->os = $os;
return $this;
}
public function getToken(): ?string
{
return $this->token;
}
public function setToken(?string $token): self
{
$this->token = $token;
return $this;
}
public function getModel(): ?string
{
return $this->model;
}
public function setModel(?string $model): self
{
$this->model = $model;
return $this;
}
public function getOsVersion(): ?string
{
return $this->osVersion;
}
public function setOsVersion(?string $osVersion): self
{
$this->osVersion = $osVersion;
return $this;
}
public function getLastActive(): ?\DateTimeInterface
{
return $this->lastActive;
}
public function setLastActive(?\DateTimeInterface $lastActive): self
{
$this->lastActive = $lastActive;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function isActive(): ?bool
{
return $this->active;
}
public function setActive(bool $active): self
{
$this->active = $active;
return $this;
}
public function getOnesignalId(): ?string
{
return $this->onesignalId;
}
public function setOnesignalId(?string $onesignalId): self
{
$this->onesignalId = $onesignalId;
return $this;
}
}