<?php
namespace App\OfficeBrain\Bundle\AccessManagementBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* Entity For ProjectAccessMaster
*
* Define Project Accesses
*
* @author OfficeBrain 4273 <info@officebrain.com>
*
*/
/**
* ProjectAccessMaster
*
* @ORM\Table(name="tbl_project_access_master", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
* @ORM\Entity(repositoryClass="App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMasterRepository")
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
*/
class ProjectAccessMaster
{
/**
* @var integer
*
* @ORM\Column(name="id", type="bigint", length=20, options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="access_name", type="string", length=255, options={"collate"="utf8_unicode_ci"})
*/
protected $accessName;
/**
* @var string
*
* @ORM\Column(name="access_route_name", type="text", options={"collate"="utf8_unicode_ci"},nullable=true)
*/
protected $accessRouteName;
/**
* Bidirectional (OWNING SIDE - FK)
*
* @ORM\ManyToOne(targetEntity="\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster", inversedBy="child",cascade={"persist"})
* @ORM\JoinColumn(name="parent_id", nullable=true)
*/
protected $parent;
/**
*
* @ORM\OneToMany(targetEntity="\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster", mappedBy="parent")
* @ORM\JoinColumn(nullable=false)
*/
protected $child;
/**
*
* @ORM\OneToMany(targetEntity="\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceAccessMapping", mappedBy="access")
* @ORM\JoinColumn(nullable=false)
*/
protected $access;
/**
*
* @ORM\OneToMany(targetEntity="\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceUserAccessMapping", mappedBy="instanceAccess")
* @ORM\JoinColumn(nullable=false)
*/
protected $instanceAccess;
/**
* @var datetime
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime", name="created_at")
*/
protected $createdAt;
/**
* @var datetime
*
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime", name="updated_at", nullable=true)
*/
protected $updatedAt;
/**
* @var datetime
*
* @ORM\Column(type="datetime", name="deleted_at", nullable=true)
*/
protected $deletedAt;
/**
* Set id
*
* @return integer
*/
public function setId($id)
{
$this->id=$id;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set accessName
*
* @param string $accessName
* @return ProjectAccessMaster
*/
public function setAccessName($accessName)
{
$this->accessName = $accessName;
return $this;
}
/**
* Get accessName
*
* @return string
*/
public function getAccessName()
{
return $this->accessName;
}
/**
* Set createdAt
*
* @param \DateTime $createdAt
* @return ProjectAccessMaster
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get createdAt
*
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* Set updatedAt
*
* @param \DateTime $updatedAt
* @return ProjectAccessMaster
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* Get updatedAt
*
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
/**
* Set deletedAt
*
* @param \DateTime $deletedAt
* @return ProjectAccessMaster
*/
public function setDeletedAt($deletedAt)
{
$this->deletedAt = $deletedAt;
return $this;
}
/**
* Get deletedAt
*
* @return \DateTime
*/
public function getDeletedAt()
{
return $this->deletedAt;
}
/**
* Set parent
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster $parent
* @return ProjectAccessMaster
*/
public function setParent($parent)
{
$this->parent = $parent;
return $this;
}
/**
* Get parent
*
* @return \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster
*/
public function getParent()
{
return $this->parent;
}
/**
* Constructor
*/
public function __construct()
{
$this->child = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Set accessRouteName
*
* @param string $accessRouteName
* @return ProjectAccessMaster
*/
public function setAccessRouteName($accessRouteName)
{
$this->accessRouteName = $accessRouteName;
return $this;
}
/**
* Get accessRouteName
*
* @return string
*/
public function getAccessRouteName()
{
return $this->accessRouteName;
}
/**
* Add child
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster $child
* @return ProjectAccessMaster
*/
public function addChild(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster $child)
{
$this->child[] = $child;
return $this;
}
/**
* Remove child
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster $child
*/
public function removeChild(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\ProjectAccessMaster $child)
{
$this->child->removeElement($child);
}
/**
* Get child
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getChild()
{
return $this->child;
}
/**
* Add access
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceAccessMapping $access
* @return ProjectAccessMaster
*/
public function addAccess(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceAccessMapping $access)
{
$this->access[] = $access;
return $this;
}
/**
* Remove access
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceAccessMapping $access
*/
public function removeAccess(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceAccessMapping $access)
{
$this->access->removeElement($access);
}
/**
* Get access
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAccess()
{
return $this->access;
}
/**
* Add instanceAccess
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceUserAccessMapping $instanceAccess
* @return ProjectAccessMaster
*/
public function addInstanceAccess(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceUserAccessMapping $instanceAccess)
{
$this->instanceAccess[] = $instanceAccess;
return $this;
}
/**
* Remove instanceAccess
*
* @param \App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceUserAccessMapping $instanceAccess
*/
public function removeInstanceAccess(\App\OfficeBrain\Bundle\AccessManagementBundle\Entity\InstanceUserAccessMapping $instanceAccess)
{
$this->instanceAccess->removeElement($instanceAccess);
}
/**
* Get instanceAccess
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getInstanceAccess()
{
return $this->instanceAccess;
}
}