ogcore/src/Dto/Input/CommandTaskScriptInput.php

57 lines
1.8 KiB
PHP

<?php
namespace App\Dto\Input;
use App\Dto\Output\CommandTaskOutput;
use App\Dto\Output\CommandTaskScheduleOutput;
use App\Entity\CommandTaskSchedule;
use App\Entity\CommandTaskScript;
use Symfony\Component\Serializer\Annotation\Groups;
final class CommandTaskScriptInput
{
#[Groups(['command-task-script:write'])]
public ?string $content = null;
#[Groups(['command-task-script:write'])]
public ?string $type = null;
#[Groups(['command-task-script:write'])]
public ?array $parameters = null;
#[Groups(['command-task-script:write'])]
public ?CommandTaskOutput $commandTask = null;
#[Groups(['command-task-script:write'])]
public ?int $order = null;
public function __construct(?CommandTaskScript $commandTaskScript = null)
{
if (!$commandTaskScript) {
return;
}
$this->content = $commandTaskScript->getContent();
$this->type = $commandTaskScript->getType();
$this->order = $commandTaskScript->getExecutionOrder();
$this->parameters = $commandTaskScript->getParameters();
$this->commandTask = new CommandTaskOutput($commandTaskScript->getCommandTask());
}
public function createOrUpdateEntity(?CommandTaskScript $commandTaskScript = null): CommandTaskScript
{
if (!$commandTaskScript) {
$commandTaskScript = new CommandTaskScript();
}
if ($this->commandTask) {
$commandTaskScript->setCommandTask($this->commandTask->getEntity());
}
$commandTaskScript->setType($this->type);
$commandTaskScript->setParameters($this->parameters);
$commandTaskScript->setContent($this->content);
$commandTaskScript->setExecutionOrder($this->order);
return $commandTaskScript;
}
}