ogcore/src/Dto/Output/OrganizationalUnitOutput.php

72 lines
2.3 KiB
PHP

<?php
namespace App\Dto\Output;
use ApiPlatform\Metadata\ApiProperty;
use ApiPlatform\Metadata\Get;
use App\Entity\Client;
use App\Entity\OrganizationalUnit;
use Symfony\Component\Serializer\Annotation\Groups;
#[Get(shortName: 'OrganizationalUnit')]
final class OrganizationalUnitOutput extends AbstractOutput
{
#[Groups(['organizational-unit:read', "client:read", "user:read"])]
public string $name;
#[Groups(['organizational-unit:read'])]
public ?string $comments = null;
#[Groups(['organizational-unit:read'])]
public ?string $location = null;
#[Groups(['organizational-unit:read'])]
public ?bool $projector = null;
#[Groups(['organizational-unit:read'])]
public ?bool $board = null;
#[Groups(['organizational-unit:read'])]
public ?int $capacity = null;
#[Groups(['organizational-unit:read', "client:read"])]
public string $type;
#[Groups(['organizational-unit:read'])]
public ?self $parent = null;
#[Groups(['organizational-unit:read'])]
public string $path;
#[Groups(['organizational-unit:read', "client:read"])]
#[ApiProperty(readableLink: true)]
public ?NetworkSettingsOutput $networkSettings = null;
#[Groups(['organizational-unit:read'])]
public \DateTime $createdAt;
#[Groups(['organizational-unit:read'])]
public ?string $createdBy = null;
public function __construct(OrganizationalUnit $organizationalUnit)
{
parent::__construct($organizationalUnit);
$this->name = $organizationalUnit->getName();
$this->comments = $organizationalUnit->getComments();
$this->location = $organizationalUnit->getLocation();
$this->projector = $organizationalUnit->isProjector();
$this->board = $organizationalUnit->isBoard();
$this->capacity = $organizationalUnit->getCapacity();
$this->type = $organizationalUnit->getType();
$this->networkSettings = $organizationalUnit->getNetworkSettings() ? new NetworkSettingsOutput($organizationalUnit->getNetworkSettings()) : null;
if ($organizationalUnit->getParent()) {
$this->parent = new self($organizationalUnit->getParent());
}
$this->path = $organizationalUnit->getPath();
$this->createdAt = $organizationalUnit->getCreatedAt();
$this->createdBy = $organizationalUnit->getCreatedBy();
}
}