<?php
namespace Submarine\UsersBundle\Entity;
use Submarine\CoreBundle\Entity\SubmarineEntityInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* Внешние акканты пользователя, для OAuth авторизации
*
* @ORM\Entity()
* @ORM\Table(name="submarine_auth_accounts", indexes={
* @ORM\Index(name="resource", columns={"resource"})
* })
*/
class UserAuthAccount implements SubmarineEntityInterface, \Serializable
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Id
*/
protected $id;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="Submarine\UsersBundle\Entity\User", inversedBy="authAccounts")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
/**
* ID ресурса, например "facebook"
* @var string
*
* @ORM\Column(name="resource", type="string", unique=false, nullable=true)
*/
protected $resource;
/**
* Сторонний UID пользователя
* @var string
*
* @ORM\Column(name="uid", type="string", length=255, unique=false, nullable=true)
*/
protected $uid;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime", unique=false, nullable=true)
*/
protected $dateCreated;
function __construct()
{
$this->dateCreated = new \DateTime();
}
/**
* Имя сущности
* @return string
*/
static public function entityName()
{
return __CLASS__;
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param User $user
*/
public function setUser(User $user = null)
{
$this->user = $user;
}
/**
* @return User
*/
public function getUser()
{
return $this->user;
}
/**
* ID ресурса, например "facebook"
* @param string $resource
*/
public function setResource($resource)
{
$this->resource = $resource;
}
/**
* ID ресурса, например "facebook"
* @return string
*/
public function getResource()
{
return $this->resource;
}
/**
* Сторонний UID пользователя
* @param string $uid
*/
public function setUid($uid)
{
$this->uid = $uid;
}
/**
* Сторонний UID пользователя
* @return string
*/
public function getUid()
{
return $this->uid;
}
/**
* @return \DateTime
*/
public function getDateCreated()
{
return $this->dateCreated;
}
public function serialize()
{
return serialize(
[
'id' => $this->id,
'resource' => $this->resource,
'uid' => $this->uid,
'dateCreated' => $this->dateCreated,
]
);
}
public function unserialize($serialized)
{
$data = unserialize($serialized);
$this->id = $data['id'];
$this->resource = $data['resource'];
$this->uid = $data['uid'];
$this->dateCreated = $data['dateCreated'];
}
}