* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ declare(strict_types=1); namespace PrestaShop\Module\Mbo\Module\Command; use PrestaShop\Module\Mbo\Module\Exception\UnknownModuleTransitionCommandException; use PrestaShop\Module\Mbo\Module\ValueObject\ModuleTransitionCommand; class ModuleStatusTransitionCommand { /** * @var ModuleTransitionCommand */ private $command; /** * @var string */ private $moduleName; /** * @var int */ private $moduleId; /** * @var string */ private $moduleVersion; /** * @var string|null */ private $source; /** * @throws UnknownModuleTransitionCommandException */ public function __construct( string $command, string $moduleName, int $moduleId, string $moduleVersion, ?string $source = null ) { $this->command = new ModuleTransitionCommand($command); $this->moduleName = $moduleName; $this->moduleId = $moduleId; $this->moduleVersion = $moduleVersion; if ($command === ModuleTransitionCommand::MODULE_COMMAND_DOWNLOAD) { if ('undefined' === $source) { $source = null; } $this->source = $source; } } public function getCommand(): ModuleTransitionCommand { return $this->command; } public function getModuleName(): string { return $this->moduleName; } public function getModuleId(): int { return $this->moduleId; } public function getModuleVersion(): string { return $this->moduleVersion; } /** * @return string|null */ public function getSource(): ?string { return $this->source; } }