Add workflow data subject & field interfaces

A subject contains multiple fields. Each field has a type and they
can be filtered and used later on.

[MAILPOET-4136]
This commit is contained in:
Jan Jakes
2022-03-07 14:53:27 +01:00
committed by Veljko V
parent d9d7df0b84
commit 50b889a1bd
2 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,60 @@
<?php declare(strict_types = 1);
namespace MailPoet\Automation\Engine\Workflows;
class Field {
public const TYPE_BOOLEAN = 'boolean';
public const TYPE_INTEGER = 'integer';
public const TYPE_STRING = 'string';
public const TYPE_ENUM = 'enum';
/** @var string */
private $key;
/** @var string */
private $type;
/** @var string */
private $name;
/** @var callable */
private $factory;
/** @var array */
private $args;
public function __construct(
string $key,
string $type,
string $name,
callable $factory,
array $args = []
) {
$this->key = $key;
$this->type = $type;
$this->name = $name;
$this->factory = $factory;
$this->args = $args;
}
public function getKey(): string {
return $this->key;
}
public function getType(): string {
return $this->type;
}
public function getName(): string {
return $this->name;
}
public function getFactory(): callable {
return $this->factory;
}
public function getArgs(): array {
return $this->args;
}
}