/**
* Person
* @author kraken
*/
/**
* @entity
* @inheritanceType("JOINED")
* @discriminatorColumn(name="role_discr", type="string")
* @discriminatorMap({"Developer" = "Entities\Developer", "Superadmin" = "Entities\Superadmin", "Admin" = "Entities\Admin", "Installer" = "Entities\Installer", "User" = "Entities\User"})
* @table(name="persons")
* @hasLifecycleCallbacks
* @abstract
*/
abstract class Person extends \DannaxTools\BaseEntity {
/**
* @id
* @column(type="integer")
* @generatedValue(strategy="SEQUENCE")
*/
private $id;
/**
* @ManyToOne(targetEntity="Person")
* @JoinColumn(name="id_creator", referencedColumnName="id", nullable=true)
*/
private $creator;
/**
* @ManyToOne(targetEntity="Role")
* @JoinColumn(name="id_role", referencedColumnName="id", nullable=false)
*/
private $role;
/**
* @column(type="string", length=200, nullable=false, unique=true)
*/
private $email;
/**
* @column(type="string", length=200, nullable=false)
*/
private $firstName;
/**
* @column(type="string", length=200, nullable=false)
*/
private $password;
/**
* @column(type="string", length=200, nullable=false)
*/
private $lastName;
/**
* @column(type="boolean", nullable=false)
*/
private $active;
/**
* @column(type="datetime", nullable=false)
*/
private $modified;
/**
* @column(type="datetime", nullable=false)
*/
private $created;