ogcore/src/Dto/Input/PxeTemplateInput.php

48 lines
1.5 KiB
PHP

<?php
namespace App\Dto\Input;
use ApiPlatform\Metadata\ApiProperty;
use App\Entity\PxeTemplate;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
final class PxeTemplateInput
{
#[Assert\NotBlank(message: 'validators.pxe_template.name.not_blank')]
#[Groups(['pxe-template:write'])]
#[ApiProperty(description: 'The name of the pxeTemplate', example: "PxeTemplate 1")]
public ?string $name = null;
#[Groups(['pxe-template:write'])]
#[ApiProperty(description: 'The content of the pxeTemplate', example: "content of the pxeTemplate 1")]
public ?string $templateContent = null;
#[Groups(['pxe-template:write'])]
#[ApiProperty(description: 'The default pxeTemplate', example: "true")]
public ?bool $isDefault = null;
public function __construct(?PxeTemplate $pxeTemplate = null)
{
if (!$pxeTemplate) {
return;
}
$this->name = $pxeTemplate->getName();
$this->templateContent = $pxeTemplate->getTemplateContent();
$this->isDefault = $pxeTemplate->isDefault();
}
public function createOrUpdateEntity(?PxeTemplate $pxeTemplate = null): PxeTemplate
{
if (!$pxeTemplate) {
$pxeTemplate = new PxeTemplate();
}
$pxeTemplate->setName($this->name);
$pxeTemplate->setTemplateContent($this->templateContent);
$pxeTemplate->setDefault($this->isDefault);
return $pxeTemplate;
}
}