<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use JsonSerializable;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ApiResource()
* Class FacilityWorkstation
* @package App\Entity
*
* @ORM\Entity
* @ORM\Table(name="facility_workstation")
*/
class FacilityWorkstation implements JsonSerializable
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=128, nullable=true)
*/
private $computerName;
/**
* @ORM\Column(type="string", length=128, nullable=true)
*/
private $computerIpAddress;
/**
* @ORM\Column(type="string", length=128, nullable=true)
*/
private $computerLocation;
/**
* @ORM\Column(type="string", length=128, nullable=true)
*/
private $computerRole; // workstation || server
/**
* @ORM\Column(type="integer", length=2, nullable=true)
*/
private $numberOfDisplays;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private $displayResolution1;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private $displayResolution2;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private $displayResolution3;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private $displayResolution4;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isActive = true;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $notes; // text
/**
* @ORM\Column(type="datetime", nullable=false)
*/
private $dateAdded;
/**
* @ORM\Column(type="datetime", nullable=false)
*/
private $dateModified;
/* many to one properties */
/**
* @ORM\ManyToOne(targetEntity="App\Entity\FacilityDetails", inversedBy="facilityWorkstations", cascade={"persist"}, fetch="EXTRA_LAZY")
*/
private $facilityDetails;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Facility", inversedBy="facilityWorkstations", cascade={"persist"}, fetch="EXTRA_LAZY")
*/
private $facility;
public function __construct()
{
$this->dateAdded = new \DateTime();
$this->setDateModified();
}
public function __toString()
{
return (string) $this->getComputerName();
}
public function jsonSerialize()
{
return array(
'id'=> $this->id,
'computerName' => $this->computerName,
'computerIpAddress' => $this->computerIpAddress,
'computerLocation' => $this->computerLocation,
'computerRole' => $this->computerRole,
'numberOfDisplays' => $this->numberOfDisplays,
'displayResolution1' => $this->displayResolution1,
'displayResolution2' => $this->displayResolution2,
'displayResolution3' => $this->displayResolution3,
'displayResolution4' => $this->displayResolution4,
'dateAdded' => $this->dateAdded,
'dateModified' => $this->dateModified,
'facilityDetailsId' => ( !is_null( $this->facilityDetails ) ) ? $this->facilityDetails->getId() : null,
'DT_RowId' => "row_" . $this->id,
);
}
/**
* get id
*
* @return integer
*/
public function getId(): ?int
{
return $this->id;
}
/**
* set id
*
* @param integer $id
* @return FacilityWorkstation
*/
public function setId($id): FacilityWorkstation
{
$this->id = $id;
return $this;
}
/**
* @return string
*/
public function getComputerName(): ?string
{
return $this->computerName;
}
/**
* @param string $computerName
* @return FacilityWorkstation
*/
public function setComputerName( string $computerName): FacilityWorkstation
{
$this->computerName = $computerName;
return $this;
}
/**
* @return string
*/
public function getComputerIpAddress(): ?string
{
return $this->computerIpAddress;
}
/**
* @param string $computerIpAddress
* @return FacilityWorkstation
*/
public function setComputerIpAddress($computerIpAddress): FacilityWorkstation
{
$this->computerIpAddress = $computerIpAddress;
return $this;
}
/**
* @return string
*/
public function getComputerLocation(): ?string
{
return $this->computerLocation;
}
/**
* @param string $computerLocation
* @return FacilityWorkstation
*/
public function setComputerLocation(string $computerLocation): FacilityWorkstation
{
$this->computerLocation = $computerLocation;
return $this;
}
/**
* @return string
*/
public function getComputerRole(): ?string
{
return $this->computerRole;
}
/**
* @param string $computerRole
* @return FacilityWorkstation
*/
public function setComputerRole(string $computerRole): FacilityWorkstation
{
$this->computerRole = $computerRole;
return $this;
}
/**
* @return integer
*/
public function getNumberOfDisplays(): ?int
{
return $this->numberOfDisplays;
}
/**
* @param integer $numberOfDisplays
* @return FacilityWorkstation
*/
public function setNumberOfDisplays(int $numberOfDisplays): FacilityWorkstation
{
$this->numberOfDisplays = $numberOfDisplays;
return $this;
}
/**
* @return string
*/
public function getDisplayResolution1(): ?string
{
return $this->displayResolution1;
}
/**
* @param string $displayResolution1
* @return FacilityWorkstation
*/
public function setDisplayResolution1(string $displayResolution1): FacilityWorkstation
{
$this->displayResolution1 = $displayResolution1;
return $this;
}
/**
* @return string
*/
public function getDisplayResolution2(): ?string
{
return $this->displayResolution2;
}
/**
* @param string $displayResolution2
* @return FacilityWorkstation
*/
public function setDisplayResolution2(string $displayResolution2): FacilityWorkstation
{
$this->displayResolution2 = $displayResolution2;
return $this;
}
/**
* @return string
*/
public function getDisplayResolution3(): ?string
{
return $this->displayResolution3;
}
/**
* @param string $displayResolution3
* @return FacilityWorkstation
*/
public function setDisplayResolution3(string $displayResolution3): FacilityWorkstation
{
$this->displayResolution3 = $displayResolution3;
return $this;
}
/**
* @return string
*/
public function getDisplayResolution4(): ?string
{
return $this->displayResolution4;
}
/**
* @param string $displayResolution4
* @return FacilityWorkstation
*/
public function setDisplayResolution4(string $displayResolution4): FacilityWorkstation
{
$this->displayResolution4 = $displayResolution4;
return $this;
}
/**
* @return boolean
*/
public function getIsActive()
{
return $this->isActive;
}
/**
* @param boolean $isActive
* @return FacilityWorkstation
*/
public function setIsActive($isActive)
{
$this->isActive = $isActive;
return $this;
}
/**
* @return string
*/
public function getNotes(): ?string
{
return $this->notes;
}
/**
* @param string|null $notes
* @return FacilityWorkstation
*/
public function setNotes(string $notes = null): FacilityDetails
{
$this->notes = $notes;
return $this;
}
/**
* @return \DateTime
*/
public function getDateAdded(): ?\DateTime
{
return $this->dateAdded;
}
/**
* @param \DateTime $dateAdded
* @return FacilityWorkstation
*/
public function setDateAdded(\DateTime $dateAdded): FacilityWorkstation
{
$this->dateAdded = $dateAdded;
return $this;
}
/**
* @return \DateTime
*/
public function getDateModified(): ?\DateTime
{
return $this->dateModified;
}
/**
* @param \DateTime|null $dateModified
* @return FacilityWorkstation
*/
public function setDateModified(\DateTime $dateModified = null): FacilityWorkstation
{
if( is_null( $dateModified ) ){
$this->dateModified = new \DateTime("now");
} else {
$this->dateModified = $dateModified;
}
return $this;
}
/* many to one methods */
/**
* get facilityDetails
*
* @return FacilityDetails
*/
public function getFacilityDetails(): ?FacilityDetails
{
return $this->facilityDetails;
}
/**
* set facilityDetails
*
* @param FacilityDetails $facilityDetails
*
* @return FacilityWorkstation
*/
public function setFacilityDetails(FacilityDetails $facilityDetails): FacilityWorkstation
{
$this->facilityDetails = $facilityDetails;
$facilityDetails->addFacilityWorkstation( $this );
return $this;
}
/**
* get facility
*
* @return Facility
*/
public function getFacility(): ?Facility
{
return $this->facility;
}
/**
* set facility
*
* @param Facility $facility
*
* @return FacilityWorkstation
*/
public function setFacility(Facility $facility = null): FacilityWorkstation
{
$this->facility = $facility;
if( !is_null( $facility ) ){
$facility->addFacilityWorkstation( $this );
} else {
$facility->removeFacilityWorkstation( $this );
}
return $this;
}
}