0, 'y' => 0]; #[Groups(['client:write'])] #[ApiProperty( description: 'descriptions.client.validation' )] public ?ImageRepositoryOutput $repository = null; #[Groups(['client:write'])] #[ApiProperty( description: 'descriptions.client.validation' )] public ?bool $maintenance = false; public function __construct(?Client $client = null) { if (!$client) { return; } $this->name = $client->getName(); $this->serialNumber = $client->getSerialNumber(); $this->netiface = $client->getNetiface(); $this->organizationalUnit = new OrganizationalUnitOutput($client->getOrganizationalUnit()); $this->netDriver = $client->getNetDriver(); $this->mac = $client->getMac(); $this->ip = $client->getIp(); $this->position = $client->getPosition(); $this->status = $client->getStatus(); if ($client->getMenu()) { $this->menu = new MenuOutput($client->getMenu()); } if ($client->getOgLive()) { $this->ogLive = new OgLiveOutput($client->getOgLive()); } if ($client->getTemplate()) { $this->template = new PxeTemplateOutput($client->getTemplate()); } if ($client->getHardwareProfile()) { $this->hardwareProfile = new HardwareProfileOutput($client->getHardwareProfile()); } if ($client->getRepository()) { $this->repository = new ImageRepositoryOutput($client->getRepository()); } } public function createOrUpdateEntity(?Client $client = null): Client { if (!$client) { $client = new Client(); } $menu = $this->menu?->getEntity() ?? $client->getOrganizationalUnit()?->getNetworkSettings()?->getMenu(); $ogLive = $this->ogLive?->getEntity() ?? $client->getOrganizationalUnit()?->getNetworkSettings()?->getOgLive(); $hardwareProfile = $this->hardwareProfile?->getEntity() ?? $client->getOrganizationalUnit()?->getNetworkSettings()?->getHardwareProfile(); $repository = $this->repository?->getEntity() ?? $client->getOrganizationalUnit()?->getNetworkSettings()?->getRepository(); $client->setName($this->name); $client->setSerialNumber($this->serialNumber); $client->setNetiface($this->netiface); $client->setOrganizationalUnit($this->organizationalUnit->getEntity()); $client->setNetDriver($this->netDriver); $client->setMac($this->mac); $client->setIp($this->ip); $client->setMenu($menu); $client->setOgLive($ogLive); $client->setHardwareProfile($hardwareProfile); $client->setRepository($repository); $client->setTemplate($this->template?->getEntity()); $client->setPosition($this->position); $client->setStatus($this->status); $client->setMaintenance($this->maintenance); return $client; } }