<?php
namespace App\Entity\Departments;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use App\Entity\Services\Service;
use App\Entity\Services\ServiceCategory;
use App\Entity\RequestList;
use App\Entity\User;
/**
* @Gedmo\Tree(type="nested")
* @Gedmo\Loggable
* @ORM\Entity(repositoryClass=App\Repository\Departments\DepartmentsRepository::class)
*/
class Departments
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=180, nullable=true)
*/
private $name;
/**
* @ORM\Column(type="text", length=180, nullable=true)
*/
private $description;
/**
* @ORM\Column(type="string", length=180, nullable=true)
*/
private $type;
/**
* @ORM\OneToMany(targetEntity=UserDepartments::class, mappedBy="department", cascade={"persist"}, orphanRemoval=true)
* @ORM\JoinColumn(nullable=true)
*/
private $department_users;
/**
* @ORM\OneToMany(targetEntity=Service::class, mappedBy="department", cascade={"persist"}, orphanRemoval=true)
* @ORM\JoinColumn(nullable=true)
*/
private $services;
/**
* @ORM\OneToMany(targetEntity=ServiceCategory::class, mappedBy="department", cascade={"persist"}, orphanRemoval=true)
* @ORM\JoinColumn(nullable=true)
*/
private $service_category;
/**
* @ORM\ManyToOne(targetEntity=Departments::class)
* @ORM\JoinColumn(nullable=true)
*/
private $requested_department;
/**
* @Gedmo\Versioned
* @Gedmo\TreeRoot
* @ORM\ManyToOne(targetEntity=Departments::class)
* @ORM\JoinColumn(name="tree_root", referencedColumnName="id", onDelete="CASCADE")
*/
private $root;
/**
* @Gedmo\Versioned
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity=Departments::class, inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $parent_department;
/**
* @ORM\OneToMany(targetEntity=Departments::class, mappedBy="parent_department")
* @ORM\OrderBy({"lft" = "ASC"})
*/
private $children;
/**
* @ORM\OneToMany(targetEntity=RequestList::class, mappedBy="requested_department", cascade={"persist"}))
* @ORM\JoinColumn(nullable=true, onDelete="CASCADE")
*/
private $service_request;
/**
* @Gedmo\Versioned
* @Gedmo\TreeLeft
* @ORM\Column(name="lft", type="integer", nullable=true)
*/
private $lft;
/**
* @Gedmo\Versioned
* @Gedmo\TreeLevel
* @ORM\Column(name="lvl", type="integer", nullable=true)
*/
private $lvl;
/**
* @Gedmo\Versioned
* @Gedmo\TreeRight
* @ORM\Column(name="rgt", type="integer", nullable=true)
*/
private $rgt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $created_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updated_at;
/**
* @ORM\ManyToOne(targetEntity=User::class)
* @ORM\JoinColumn(nullable=true, referencedColumnName="id", nullable=true)
*/
private $created_by;
/**
* @ORM\ManyToOne(targetEntity=User::class)
* @ORM\JoinColumn(nullable=true, referencedColumnName="id", nullable=true)
*/
private $updated_by;
public function getId(): ?int
{
return $this->id;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name): void
{
$this->name = $name;
}
/**
* @return mixed
*/
public function getDescription()
{
return $this->description;
}
/**
* @param mixed $description
*/
public function setDescription($description): void
{
$this->description = $description;
}
/**
* @return mixed
*/
public function getType()
{
return $this->type;
}
/**
* @param mixed $type
*/
public function setType($type): void
{
$this->type = $type;
}
/**
* @return mixed
*/
public function getDepartmentUsers()
{
return $this->department_users;
}
/**
* @param mixed $department_users
*/
public function setDepartmentUsers($department_users): void
{
$this->department_users = $department_users;
}
/**
* @return mixed
*/
public function getServices()
{
return $this->services;
}
/**
* @param mixed $services
*/
public function setServices($services): void
{
$this->services = $services;
}
/**
* @return mixed
*/
public function getParentDepartment()
{
return $this->parent_department;
}
/**
* @param mixed $parent_department
*/
public function setParentDepartment($parent_department): void
{
$this->parent_department = $parent_department;
}
/**
* @return mixed
*/
public function getChildren()
{
return $this->children;
}
/**
* @param mixed $children
*/
public function setChildren($children): void
{
$this->children = $children;
}
/**
* @return mixed
*/
public function getServiceRequest()
{
return $this->service_request;
}
/**
* @param mixed $service_request
*/
public function setServiceRequest($service_request): void
{
$this->service_request = $service_request;
}
/**
* @return mixed
*/
public function getCreatedAt()
{
return $this->created_at;
}
/**
* @param mixed $created_at
*/
public function setCreatedAt($created_at): void
{
$this->created_at = $created_at;
}
/**
* @return mixed
*/
public function getUpdatedAt()
{
return $this->updated_at;
}
/**
* @param mixed $updated_at
*/
public function setUpdatedAt($updated_at): void
{
$this->updated_at = $updated_at;
}
/**
* @return mixed
*/
public function getCreatedBy()
{
return $this->created_by;
}
/**
* @param mixed $created_by
*/
public function setCreatedBy($created_by): void
{
$this->created_by = $created_by;
}
/**
* @return mixed
*/
public function getUpdatedBy()
{
return $this->updated_by;
}
/**
* @param mixed $updated_by
*/
public function setUpdatedBy($updated_by): void
{
$this->updated_by = $updated_by;
}
/**
* Get the value of service_category
*/
public function getServiceCategory()
{
return $this->service_category;
}
/**
* Set the value of service_category
*
* @return self
*/
public function setServiceCategory($service_category)
{
$this->service_category = $service_category;
return $this;
}
/**
* Get the value of requested_department
*/
public function getRequestedDepartment()
{
return $this->requested_department;
}
/**
* Set the value of requested_department
*
* @return self
*/
public function setRequestedDepartment($requested_department)
{
$this->requested_department = $requested_department;
return $this;
}
}