src/Entity/FacilityDetails.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use JsonSerializable;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. /**
  9. * Class FacilityDetails
  10. *
  11. * @package App\Entity
  12. * @ORM\Entity
  13. * @ORM\Table(name="facility_details")
  14. */
  15. class FacilityDetails implements JsonSerializable
  16. {
  17.     /**
  18.      * @ORM\Id()
  19.      * @ORM\GeneratedValue()
  20.      * @ORM\Column(type="integer")
  21.      */
  22.     private $id;
  23.     /*  base information */
  24.     /*  service information */
  25.     // todo: determine if this number ever changes to see if it needs to be a one to many relationship
  26.     /**
  27.      * @ORM\Column(type="string", length=128, nullable=true)
  28.      */
  29.     private $serviceContractId// ID generated by the service team, relates to service tickets
  30.     /**
  31.      * @ORM\Column(type="string", length=128, nullable=true)
  32.      */
  33.     private $serviceSiteNumber// ID generated by the service team, relates to service tickets
  34.     
  35.     /**
  36.      * @ORM\Column(type="string", length=255, nullable=true)
  37.      */
  38.     private $remoteAccessMethod// if teamviewer then the previous property is true
  39.     /**
  40.      * @ORM\ManyToOne(targetEntity="User", inversedBy="facilityDetailsServiceAccountManager")
  41.      * @ORM\JoinTable(name="service_account_managers_facility_details")
  42.      */
  43.     protected $serviceAccountManagerUser;
  44.     // todo: should this be a verification item?
  45.     /**
  46.      * @ORM\Column(type="boolean", nullable=true)
  47.      */
  48.     private $isRemoteAccessAvailable false;
  49.     /**
  50.      * @ORM\Column(type="string", length=200, nullable=true)
  51.      */
  52.     private $areRemoteVisitsAllowed;
  53.     /**
  54.      * @ORM\Column(type="string", length=200, nullable=true)
  55.      */
  56.     private $areSiteVisitsAllowed;
  57.     
  58.     /**
  59.      * @ORM\ManyToOne(targetEntity="User", inversedBy="facilityDetailsServiceCustomerManager")
  60.      * @ORM\JoinTable(name="service_customer_managers_facility_details")
  61.      */
  62.     protected $serviceCustomerManagerUser;
  63.     /**
  64.      * @ORM\Column(type="text", nullable=true)
  65.      */
  66.     private $serviceNotes// text
  67.     // remote access
  68.     // todo: should this be a verification item?
  69.     /**
  70.      * @ORM\Column(type="boolean", nullable=true)
  71.      */
  72.     private $hasTeamviewerAccess// bool
  73.     /**
  74.      * @ORM\Column(type="text", nullable=true)
  75.      */
  76.     private $remoteAccessNotes// text
  77.     /**
  78.      * @ORM\Column(type="string", length=128, nullable=true)
  79.      */
  80.     private $remoteAccessAdministrator// string - tec systems || customer
  81.     // tec IT
  82.     /**
  83.      * @ORM\Column(type="string", length=32, nullable=true)
  84.      */
  85.     private $itType// server || workstation
  86.     /**
  87.      * @ORM\Column(type="string", length=32, nullable=true)
  88.      */
  89.     private $serverSoftware// symmetre || ebi
  90.     /**
  91.      * @ORM\Column(type="string", length=32, nullable=true)
  92.      */
  93.     private $symmetreEbiVersion// string
  94.     /**
  95.      * @ORM\Column(type="string", length=128, nullable=true)
  96.      */
  97.     private $symmetreEbiSystemNumber// string
  98.     /**
  99.      * @ORM\Column(type="string", length=128, nullable=true)
  100.      */
  101.     private $symmetreEbiRevision// string
  102.     /**
  103.      * @ORM\Column(type="string", length=3, nullable=true)
  104.      */
  105.     private $numberOfLicenses// string
  106.     /**
  107.      * @ORM\Column(type="text", nullable=true)
  108.      */
  109.     private $itNotes// text
  110.     // graphics
  111.     // todo: should this be a verification item?
  112.     /**
  113.      * @ORM\Column(type="boolean", nullable=true)
  114.      */
  115.     private $isFileReplicationConfigured false// bool
  116.     // todo: should this be a verification item?
  117.     /**
  118.      * @ORM\Column(type="boolean", nullable=true)
  119.      */
  120.     private $isGitLoadedToMaster false// bool
  121.     /**
  122.      * @ORM\Column(type="text", nullable=true)
  123.      */
  124.     private $graphicsNotes// text
  125.     // general
  126.     /**
  127.      * @ORM\Column(type="datetime", nullable=true)
  128.      */
  129.     private $dateAdded;
  130.     /**
  131.      * @ORM\Column(type="datetime", nullable=true)
  132.      */
  133.     private $dateModified;
  134.     /* ~~~~~~~~~~~~~~~~ OneToOne ~~~~~~~~~~~~~~~~ */
  135.     /**
  136.      * @ORM\OneToOne(targetEntity="App\Entity\Facility", mappedBy="facilityDetails")
  137.      */
  138.     private $facility;
  139.     /* ~~~~~~~~~~~~~~~~ OneToMany ~~~~~~~~~~~~~~~~ */
  140.     /**
  141.      * @ORM\OneToMany(targetEntity="App\Entity\NetworkInstallation", mappedBy="facilityDetails", cascade={"persist"}, fetch="EXTRA_LAZY")
  142.      */
  143.     private $networkInstallations;
  144.     /**
  145.      * @ORM\OneToMany(targetEntity="App\Entity\Project", mappedBy="facilityDetails", cascade={"persist"}, fetch="EXTRA_LAZY")
  146.      */
  147.     private $projects;
  148.     // todo: figure out how to store these users. Should they be in the users table with a flag for no access?
  149.     private $engineers;
  150.     /**
  151.      * @ORM\OneToMany(targetEntity="App\Entity\FacilityWorkstation", mappedBy="facilityDetails", cascade={"persist"}, fetch="EXTRA_LAZY")
  152.      */
  153.     private $facilityWorkstations// links to a FacilityWorkstation entity
  154.     /**
  155.      * @ORM\OneToMany(targetEntity="App\Entity\VerificationItem", mappedBy="facilityDetails", cascade={"persist"}, fetch="EXTRA_LAZY")
  156.      */
  157.     private $verificationItems// links to a VerificationItem entity (backup, script library, dropbox match, git loaded, etc.)
  158.     /* ~~~~~~~~~~~~~~~~ ManyToOne ~~~~~~~~~~~~~~~~ */
  159.     /* ~~~~~~~~~~~~~~~~ ManyToMany ~~~~~~~~~~~~~~~~ */
  160.     /**
  161.      * @ORM\ManyToMany(targetEntity="App\Entity\User", mappedBy="customerFacilityDetails", cascade={"persist"}, fetch="EXTRA_LAZY")
  162.      * @ORM\OrderBy({"name" = "ASC"})
  163.      */
  164.     private $customerContacts;
  165.     public function __construct()
  166.     {
  167.         $this->dateAdded = new \DateTime();
  168.         $this->setDateModified();
  169.         $this->networkInstallaions = new ArrayCollection();
  170.         $this->projects = new ArrayCollection();
  171.         $this->engineers = new ArrayCollection();
  172.         $this->customerContacts = new ArrayCollection();
  173.         $this->facilityWorkstations = new ArrayCollection();
  174.         $this->verificationItems = new ArrayCollection();
  175.     }
  176.     public function __toString()
  177.     {
  178.         return (string) $this->baseProject->getName();
  179.     }
  180.     public function jsonSerialize()
  181.     {
  182.         return array(
  183.             'id'=> $this->id,
  184.             'serviceContractId' => $this->serviceContractId,
  185.             'hasTeamviewerAccess' => $this->hasTeamviewerAccess,
  186.             'remoteAccessMethod' => $this->remoteAccessMethod,
  187.             'remoteAccessAdministrator' => $this->remoteAccessAdministrator,
  188.             'itType' => $this->itType,
  189.             'symmetreEbiVersion' => $this->symmetreEbiVersion,
  190.             'symmetreEbiSystemNumber' => $this->symmetreEbiSystemNumber,
  191.             'symmetreEbiRevision' => $this->symmetreEbiRevision,
  192.             'itNotes' => $this->itNotes,
  193.             'graphicsNotes' => $this->graphicsNotes,
  194.             'serviceNotes' => $this->serviceNotes,
  195.             'remoteAccessNotes' => $this->remoteAccessNotes,
  196.         );
  197.     }
  198.     /**
  199.      * get id
  200.      *
  201.      * @return integer
  202.      */
  203.     public function getId(): ?int
  204.     {
  205.         return $this->id;
  206.     }
  207.     /**
  208.      * set id
  209.      *
  210.      * @param integer $id
  211.      * @return FacilityDetails
  212.      */
  213.     public function setId($id): FacilityDetails
  214.     {
  215.         $this->id $id;
  216.         return $this;
  217.     }
  218.     /**
  219.      * @return string
  220.      */
  221.     public function getServiceContractId(): ?string
  222.     {
  223.         return $this->serviceContractId;
  224.     }
  225.     /**
  226.      * @param mixed $serviceContractId
  227.      * @return FacilityDetails
  228.      */
  229.     public function setServiceContractId($serviceContractId null): FacilityDetails
  230.     {
  231.         $this->serviceContractId $serviceContractId;
  232.         return $this;
  233.     }
  234.     
  235.     /**
  236.      * @return string
  237.      */
  238.     public function getServiceSiteNumber(): ?string
  239.     {
  240.         return $this->serviceSiteNumber;
  241.     }
  242.     /**
  243.      * @param mixed $serviceSiteNumber
  244.      * @return FacilityDetails
  245.      */
  246.     public function setServiceSiteNumber($serviceSiteNumber null): FacilityDetails
  247.     {
  248.         $this->serviceSiteNumber $serviceSiteNumber;
  249.         return $this;
  250.     }
  251.     /**
  252.      * @return boolean
  253.      */
  254.     public function getHasTeamviewerAccess(): ?bool
  255.     {
  256.         return $this->hasTeamviewerAccess;
  257.     }
  258.     /**
  259.      * @param boolean $hasTeamviewerAccess
  260.      * @return FacilityDetails
  261.      */
  262.     public function setHasTeamviewerAccess(bool $hasTeamviewerAccess null): FacilityDetails
  263.     {
  264.         $this->hasTeamviewerAccess $hasTeamviewerAccess;
  265.         return $this;
  266.     }
  267.     /**
  268.      * @return string
  269.      */
  270.     public function getRemoteAccessMethod(): ?string
  271.     {
  272.         return $this->remoteAccessMethod;
  273.     }
  274.     /**
  275.      * @param string $remoteAccessMethod
  276.      * @return FacilityDetails
  277.      */
  278.     public function setRemoteAccessMethod(string $remoteAccessMethod null): FacilityDetails
  279.     {
  280.         $this->remoteAccessMethod $remoteAccessMethod;
  281.         return $this;
  282.     }
  283.     /**
  284.      * @return boolean
  285.      */
  286.     public function getIsRemoteAccessAvailable(): ?bool
  287.     {
  288.         return $this->isRemoteAccessAvailable;
  289.     }
  290.     /**
  291.      * @param boolean $isRemoteAccessAvailable
  292.      * @return FacilityDetails
  293.      */
  294.     public function setIsRemoteAccessAvailable(bool $isRemoteAccessAvailable null): FacilityDetails
  295.     {
  296.         $this->isRemoteAccessAvailable $isRemoteAccessAvailable;
  297.         return $this;
  298.     }
  299.     /**
  300.      * @return string
  301.      */
  302.     public function getAreRemoteVisitsAllowed(): ?string
  303.     {
  304.         return $this->areRemoteVisitsAllowed;
  305.     }
  306.     /**
  307.      * @param string $areRemoteVisitsAllowed
  308.      * @return FacilityDetails
  309.      */
  310.     public function setAreRemoteVisitsAllowed(string $areRemoteVisitsAllowed null): FacilityDetails
  311.     {
  312.         $this->areRemoteVisitsAllowed $areRemoteVisitsAllowed;
  313.         return $this;
  314.     }
  315.     /**
  316.      * @return string
  317.      */
  318.     public function getAreSiteVisitsAllowed(): ?string
  319.     {
  320.         return $this->areSiteVisitsAllowed;
  321.     }
  322.     /**
  323.      * @param string $areSiteVisitsAllowed
  324.      * @return FacilityDetails
  325.      */
  326.     public function setAreSiteVisitsAllowed(string $areSiteVisitsAllowed null): FacilityDetails
  327.     {
  328.         $this->areSiteVisitsAllowed $areSiteVisitsAllowed;
  329.         return $this;
  330.     }
  331.     /**
  332.      * @return string
  333.      */
  334.     public function getServiceNotes(): ?string
  335.     {
  336.         return $this->serviceNotes;
  337.     }
  338.     /**
  339.      * @param string|null $serviceNotes
  340.      * @return FacilityDetails
  341.      */
  342.     public function setServiceNotes(string $serviceNotes null): FacilityDetails
  343.     {
  344.         $this->serviceNotes $serviceNotes;
  345.         return $this;
  346.     }
  347.     
  348.     /**
  349.      * @return mixed
  350.      */
  351.     public function getRemoteAccessAdministrator()
  352.     {
  353.         return $this->remoteAccessAdministrator;
  354.     }
  355.     /**
  356.      * @param string $remoteAccessAdministrator
  357.      * @return FacilityDetails
  358.      */
  359.     public function setRemoteAccessAdministrator(string $remoteAccessAdministrator null): FacilityDetails
  360.     {
  361.         $this->remoteAccessAdministrator $remoteAccessAdministrator;
  362.         return $this;
  363.     }
  364.     /**
  365.      * @return string
  366.      */
  367.     public function getRemoteAccessNotes(): ?string
  368.     {
  369.         return $this->remoteAccessNotes;
  370.     }
  371.     /**
  372.      * @param string|null $remoteAccessNotes
  373.      * @return FacilityDetails
  374.      */
  375.     public function setRemoteAccessNotes(string $remoteAccessNotes null): FacilityDetails
  376.     {
  377.         $this->remoteAccessNotes $remoteAccessNotes;
  378.         return $this;
  379.     }
  380.     /**
  381.      * @return string
  382.      */
  383.     public function getItType(): ?string
  384.     {
  385.         return $this->itType;
  386.     }
  387.     /**
  388.      * @param string|null $itType
  389.      * @return FacilityDetails
  390.      */
  391.     public function setItType(string $itType null): FacilityDetails
  392.     {
  393.         $this->itType $itType;
  394.         return $this;
  395.     }
  396.     /**
  397.      * @return string
  398.      */
  399.     public function getServerSoftware(): ?string
  400.     {
  401.         return $this->serverSoftware;
  402.     }
  403.     /**
  404.      * @param string|null $serverSoftware
  405.      * @return FacilityDetails
  406.      */
  407.     public function setServerSoftware(string $serverSoftware null): FacilityDetails
  408.     {
  409.         $this->serverSoftware $serverSoftware;
  410.         return $this;
  411.     }
  412.     
  413.     /**
  414.      * @return string
  415.      */
  416.     public function getSymmetreEbiVersion(): ?string
  417.     {
  418.         return $this->symmetreEbiVersion;
  419.     }
  420.     /**
  421.      * @param string $symmetreEbiVersion
  422.      * @return FacilityDetails
  423.      */
  424.     public function setSymmetreEbiVersion(string $symmetreEbiVersion null): FacilityDetails
  425.     {
  426.         $this->symmetreEbiVersion $symmetreEbiVersion;
  427.         return $this;
  428.     }
  429.     /**
  430.      * @return string
  431.      */
  432.     public function getSymmetreEbiSystemNumber(): ?string
  433.     {
  434.         return $this->symmetreEbiSystemNumber;
  435.     }
  436.     /**
  437.      * @param string $symmetreEbiSystemNumber
  438.      * @return FacilityDetails
  439.      */
  440.     public function setSymmetreEbiSystemNumber(string $symmetreEbiSystemNumber null): FacilityDetails
  441.     {
  442.         $this->symmetreEbiSystemNumber $symmetreEbiSystemNumber;
  443.         return $this;
  444.     }
  445.     /**
  446.      * @return string
  447.      */
  448.     public function getSymmetreEbiRevision(): ?string
  449.     {
  450.         return $this->symmetreEbiRevision;
  451.     }
  452.     /**
  453.      * @param string $symmetreEbiRevision
  454.      * @return FacilityDetails
  455.      */
  456.     public function setSymmetreEbiRevision(string $symmetreEbiRevision null): FacilityDetails
  457.     {
  458.         $this->symmetreEbiRevision $symmetreEbiRevision;
  459.         return $this;
  460.     }
  461.     /**
  462.      * @return string
  463.      */
  464.     public function getNumberOfLicenses(): ?string
  465.     {
  466.         return $this->numberOfLicenses;
  467.     }
  468.     /**
  469.      * @param string $numberOfLicenses
  470.      * @return FacilityDetails
  471.      */
  472.     public function setNumberOfLicenses(string $numberOfLicenses null): FacilityDetails
  473.     {
  474.         $this->numberOfLicenses $numberOfLicenses;
  475.         return $this;
  476.     }
  477.     /**
  478.      * @return string
  479.      */
  480.     public function getItNotes(): ?string
  481.     {
  482.         return $this->itNotes;
  483.     }
  484.     /**
  485.      * @param string|null $itNotes
  486.      * @return FacilityDetails
  487.      */
  488.     public function setItNotes(string $itNotes null): FacilityDetails
  489.     {
  490.         $this->itNotes $itNotes;
  491.         return $this;
  492.     }
  493.     /**
  494.      * @return string
  495.      */
  496.     public function getGraphicsNotes(): ?string
  497.     {
  498.         return $this->graphicsNotes;
  499.     }
  500.     /**
  501.      * @param string|null $graphicsNotes
  502.      * @return FacilityDetails
  503.      */
  504.     public function setGraphicsNotes(string $graphicsNotes null): FacilityDetails
  505.     {
  506.         $this->graphicsNotes $graphicsNotes;
  507.         return $this;
  508.     }
  509.     /**
  510.      * @return boolean
  511.      */
  512.     public function getIsFileReplicationConfigured(): ?bool
  513.     {
  514.         return $this->isFileReplicationConfigured;
  515.     }
  516.     /**
  517.      * @param boolean $isFileReplicationConfigured
  518.      * @return FacilityDetails
  519.      */
  520.     public function setIsFileReplicationConfigured(bool $isFileReplicationConfigured null): FacilityDetails
  521.     {
  522.         $this->isFileReplicationConfigured $isFileReplicationConfigured;
  523.         return $this;
  524.     }
  525.     /**
  526.      * @return boolean
  527.      */
  528.     public function getIsGitLoadedToMaster(): ?bool
  529.     {
  530.         return $this->isGitLoadedToMaster;
  531.     }
  532.     /**
  533.      * @param boolean $isGitLoadedToMaster
  534.      * @return FacilityDetails
  535.      */
  536.     public function setIsGitLoadedToMaster(bool $isGitLoadedToMaster null): FacilityDetails
  537.     {
  538.         $this->isGitLoadedToMaster $isGitLoadedToMaster;
  539.         return $this;
  540.     }
  541.     /**
  542.      * @return \DateTime
  543.      */
  544.     public function getDateAdded(): ?\DateTime
  545.     {
  546.         return $this->dateAdded;
  547.     }
  548.     /**
  549.      * @param \DateTime $dateAdded
  550.      * @return FacilityDetails
  551.      */
  552.     public function setDateAdded(\DateTime $dateAdded): FacilityDetails
  553.     {
  554.         $this->dateAdded $dateAdded;
  555.         return $this;
  556.     }
  557.     /**
  558.      * @return \DateTime
  559.      */
  560.     public function getDateModified(): ?\DateTime
  561.     {
  562.         return $this->dateModified;
  563.     }
  564.     /**
  565.      * @param mixed $dateModified
  566.      * @return FacilityDetails
  567.      */
  568.     public function setDateModified(\DateTime $dateModified null): FacilityDetails
  569.     {
  570.         if( is_null$dateModified ) ){
  571.             $this->dateModified = new \DateTime("now");
  572.         } else {
  573.             $this->dateModified $dateModified;
  574.         }
  575.         return $this;
  576.     }
  577.     
  578.     
  579.     
  580.     /*  one to one methods */
  581.     /**
  582.      * @return Facility
  583.      */
  584.     public function getFacility(): ?Facility
  585.     {
  586.         return $this->facility;
  587.     }
  588.     /**
  589.      * @param Facility $facility
  590.      * @return FacilityDetails
  591.      */
  592.     public function setFacility(Facility $facility): FacilityDetails
  593.     {
  594.         $this->facility $facility;
  595.         if( $facility->getFacilityDetails() !== $this ) {
  596.             $facility->setFacilityDetails($this);
  597.         }
  598.         return $this;
  599.     }    
  600.     
  601.     
  602.     
  603.     
  604.     
  605.     
  606.     
  607.     
  608.     
  609.     
  610.     
  611.     
  612.     
  613.     
  614.     
  615.     /**
  616.      * @return Project
  617.      */
  618. //    public function getBaseProject(): ?Project
  619. //    {
  620. //        return $this->baseProject;
  621. //    }
  622.     /**
  623.      * @param Project $baseProject
  624.      * @return FacilityDetails
  625.      */
  626. //    public function setBaseProject(Project $baseProject): FacilityDetails
  627. //    {
  628. //        $this->baseProject = $baseProject;
  629. //        return $this;
  630. //    }
  631.     // todo: figure out how to handle engineers, are they users?
  632.     /**
  633.      * @return mixed
  634.      */
  635. //    public function getChiefEngineer()
  636. //    {
  637. //        return $this->chiefEngineer;
  638. //    }
  639.     /**
  640.      * @param mixed $chiefEngineer
  641.      * @return FacilityDetails
  642.      */
  643. //    public function setChiefEngineer($chiefEngineer): FacilityDetails
  644. //    {
  645. //        $this->chiefEngineer = $chiefEngineer;
  646. //        return $this;
  647. //    }
  648.     /**
  649.      * @return User
  650.      */
  651. //    public function getTecSystemsAccountManager(): ?User
  652. //    {
  653. //        return $this->tecSystemsAccountManager;
  654. //    }
  655.     /**
  656.      * @param User $tecSystemsAccountManager
  657.      * @return FacilityDetails
  658.      */
  659. //    public function setTecSystemsAccountManager(User $tecSystemsAccountManager): FacilityDetails
  660. //    {
  661. //        $this->tecSystemsAccountManager = $tecSystemsAccountManager;
  662. //        return $this;
  663. //    }
  664.     /**
  665.      * @return User
  666.      */
  667. //    public function getTecSystemsConstructionProjectManager(): ?User
  668. //    {
  669. //        return $this->tecSystemsConstructionProjectManager;
  670. //    }
  671.     /**
  672.      * @param User $tecSystemsConstructionProjectManager
  673.      * @return FacilityDetails
  674.      */
  675. //    public function setTecSystemsConstructionProjectManager(User $tecSystemsConstructionProjectManager): FacilityDetails
  676. //    {
  677. //        $this->tecSystemsConstructionProjectManager = $tecSystemsConstructionProjectManager;
  678. //        return $this;
  679. //    }
  680.     /**
  681.      * @return User
  682.      */
  683. //    public function getRemoteAccessSetupUser(): ?User
  684. //    {
  685. //        return $this->remoteAccessSetupUser;
  686. //    }
  687.     /**
  688.      * @param User $remoteAccessSetupUser
  689.      * @return FacilityDetails
  690.      */
  691. //    public function setRemoteAccessSetupUser(User $remoteAccessSetupUser): FacilityDetails
  692. //    {
  693. //        $this->remoteAccessSetupUser = $remoteAccessSetupUser;
  694. //        return $this;
  695. //    }
  696.     /**
  697.      * @return User
  698.      */
  699. //    public function getTransferToOfficeNasUser(): ?User
  700. //    {
  701. //        return $this->transferToOfficeNasUser;
  702. //    }
  703.     /**
  704.      * @param User $transferToOfficeNasUser
  705.      * @return FacilityDetails
  706.      */
  707. //    public function setTransferToOfficeNasUser(User $transferToOfficeNasUser): FacilityDetails
  708. //    {
  709. //        $this->transferToOfficeNasUser = $transferToOfficeNasUser;
  710. //        return $this;
  711. //    }
  712.     /*  one to many methods */
  713.     /**
  714.      * @return mixed
  715.      */
  716.     public function getNetworkInstallations()
  717.     {
  718.         return $this->networkInstallations;
  719.     }
  720.     /**
  721.      * @param NetworkInstallation $networkInstallation
  722.      * @return FacilityDetails
  723.      */
  724.     public function addNetworkInstallation(NetworkInstallation $networkInstallation): FacilityDetails
  725.     {
  726.         if (!$this->networkInstallations->contains($networkInstallation)) {
  727.             $this->networkInstallations[] = $networkInstallation;
  728.             $networkInstallation->setFacilityDetails($this);
  729.         }
  730.         return $this;
  731.     }
  732.     /**
  733.      * @param NetworkInstallation $networkInstallation
  734.      * @return FacilityDetails
  735.      */
  736.     public function removeNetworkInstallation(NetworkInstallation $networkInstallation): FacilityDetails
  737.     {
  738.         if ($this->networkInstallations->contains($networkInstallation)) {
  739.             $this->networkInstallations->removeElement($networkInstallation);
  740.             // set the owning side to null (unless already changed)
  741.             if ($networkInstallation->getFacilityDetails() === $this) {
  742.                 $networkInstallation->setFacilityDetails(null);
  743.             }
  744.         }
  745.         return $this;
  746.     }
  747.     /**
  748.      * @return mixed
  749.      */
  750.     public function getProjects()
  751.     {
  752.         return $this->projects;
  753.     }
  754.     /**
  755.      * @param Project $project
  756.      * @return FacilityDetails
  757.      */
  758.     public function addProject(Project $project): FacilityDetails
  759.     {
  760.         if (!$this->projects->contains($project)) {
  761.             $this->projects[] = $project;
  762.             $project->setFacilityDetails($this);
  763.         }
  764.         return $this;
  765.     }
  766.     /**
  767.      * @param Project $project
  768.      * @return FacilityDetails
  769.      */
  770.     public function removeProject(Project $project): FacilityDetails
  771.     {
  772.         if ($this->projects->contains($project)) {
  773.             $this->projects->removeElement($project);
  774.             // set the owning side to null (unless already changed)
  775.             if ($project->getFacilityDetails() === $this) {
  776.                 $project->setFacilityDetails(null);
  777.             }
  778.         }
  779.         return $this;
  780.     }
  781.     /**
  782.      * @return mixed
  783.      */
  784.     public function getFacilityWorkstations()
  785.     {
  786.         return $this->facilityWorkstations;
  787.     }
  788.     /**
  789.      * @param FacilityWorkstation $facilityWorkstation
  790.      * @return FacilityDetails
  791.      */
  792.     public function addFacilityWorkstation(FacilityWorkstation $facilityWorkstation): FacilityDetails
  793.     {
  794.         if (!$this->facilityWorkstations->contains($facilityWorkstation)) {
  795.             $this->facilityWorkstations[] = $facilityWorkstation;
  796.             $facilityWorkstation->setFacilityDetails($this);
  797.         }
  798.         return $this;
  799.     }
  800.     /**
  801.      * @param FacilityWorkstation $facilityWorkstation
  802.      * @return FacilityDetails
  803.      */
  804.     public function removeFacilityWorkstation(FacilityWorkstation $facilityWorkstation): FacilityDetails
  805.     {
  806.         if ($this->facilityWorkstations->contains($facilityWorkstation)) {
  807.             $this->facilityWorkstations->removeElement($facilityWorkstation);
  808.             // set the owning side to null (unless already changed)
  809.             if ($facilityWorkstation->getFacilityDetails() === $this) {
  810.                 $facilityWorkstation->setFacilityDetails(null);
  811.             }
  812.         }
  813.         return $this;
  814.     }
  815.     /**
  816.      * @return mixed
  817.      */
  818.     public function getVerificationItems()
  819.     {
  820.         return $this->verificationItems;
  821.     }
  822.     /**
  823.      * @param VerificationItem $verificationItem
  824.      * @return FacilityDetails
  825.      */
  826.     public function addVerificationItem(VerificationItem $verificationItem): FacilityDetails
  827.     {
  828.         if (!$this->verificationItems->contains($verificationItem)) {
  829.             $this->verificationItems[] = $verificationItem;
  830.             $verificationItem->setFacilityDetails($this);
  831.         }
  832.         return $this;
  833.     }
  834.     /**
  835.      * @param VerificationItem $verificationItem
  836.      * @return FacilityDetails
  837.      */
  838.     public function removeVerificationItem(VerificationItem $verificationItem): FacilityDetails
  839.     {
  840.         if ($this->verificationItems->contains($verificationItem)) {
  841.             $this->verificationItems->removeElement($verificationItem);
  842.             // set the owning side to null (unless already changed)
  843.             if ($verificationItem->getFacilityDetails() === $this) {
  844.                 $verificationItem->setFacilityDetails(null);
  845.             }
  846.         }
  847.         return $this;
  848.     }
  849.     /*  many to many methods */
  850.     /**
  851.      * Get customerContacts
  852.      *
  853.      * @return mixed
  854.      */
  855.     public function getCustomerContacts()
  856.     {
  857.         return $this->customerContacts;
  858.     }
  859.     /**
  860.      * Add customerContact
  861.      *
  862.      * @param \App\Entity\User $customerContact
  863.      *
  864.      * @return User
  865.      */
  866.     public function addCustomerContact(\App\Entity\User $customerContact)
  867.     {
  868.         if (!$this->customerContacts->contains($customerContact)) {
  869.             $this->customerContacts[] = $customerContact;
  870.             $customerContact->addCustomerFacilityDetail($this);
  871.         }
  872.         return $this;
  873.     }
  874.     /**
  875.      * Remove customerContact
  876.      *
  877.      * @param \App\Entity\User $customerContact
  878.      * @return User
  879.      */
  880.     public function removeCustomerContact(\App\Entity\User $customerContact)
  881.     {
  882.         if ($this->customerContacts->contains($customerContact)) {
  883.             $this->customerContacts->removeElement($customerContact);
  884.             // set the owning side to null (unless already changed)
  885.             if ($customerContact->getCustomerFacilityDetails()->contains$this )) {
  886.                 $customerContact->removeCustomerFacilityDetail($this);
  887.             }
  888.         }
  889.         return $this;
  890.     }
  891.     /*  many to one methods */
  892.     /**
  893.      * Set serviceAccountManagerUser
  894.      *
  895.      * @param User|null $serviceAccountManagerUser
  896.      * @return FacilityDetails
  897.      */
  898.     public function setServiceAccountManagerUser(\App\Entity\User $serviceAccountManagerUser null): FacilityDetails
  899.     {
  900.         $this->serviceAccountManagerUser $serviceAccountManagerUser;
  901.         return $this;
  902.     }
  903.     /**
  904.      * Get serviceAccountManagerUser
  905.      *
  906.      * @return User
  907.      */
  908.     public function getServiceAccountManagerUser()
  909.     {
  910.         return $this->serviceAccountManagerUser;
  911.     }
  912.     /**
  913.      * Set serviceCustomerManagerUser
  914.      *
  915.      * @param User|null $serviceCustomerManagerUser
  916.      * @return FacilityDetails
  917.      */
  918.     public function setServiceCustomerManagerUser(\App\Entity\User $serviceCustomerManagerUser null): FacilityDetails
  919.     {
  920.         $this->serviceCustomerManagerUser $serviceCustomerManagerUser;
  921.         return $this;
  922.     }
  923.     /**
  924.      * Get serviceCustomerManagerUser
  925.      *
  926.      * @return User
  927.      */
  928.     public function getServiceCustomerManagerUser()
  929.     {
  930.         return $this->serviceCustomerManagerUser;
  931.     }
  932.     
  933.     /*  custom methods */
  934. }