File "WorkflowTemplate.php"

Full Path: /home/warrior1/public_html/wp-content-20241001222009/plugins/mailpoet/lib/Automation/Engine/Data/WorkflowTemplate.php
File size: 1.67 KB
MIME-type: text/x-php
Charset: utf-8

<?php declare(strict_types = 1);

namespace MailPoet\Automation\Engine\Data;

if (!defined('ABSPATH')) exit;


use MailPoet\RuntimeException;

class WorkflowTemplate {


  public const CATEGORY_WELCOME = 1;
  public const CATEGORY_ABANDONED_CART = 2;
  public const CATEGORY_REENGAGEMENT = 3;
  public const CATEGORY_WOOCOMMERCE = 4;
  public const ALL_CATEGORIES = [
    self::CATEGORY_WELCOME,
    self::CATEGORY_ABANDONED_CART,
    self::CATEGORY_REENGAGEMENT,
    self::CATEGORY_WOOCOMMERCE,
  ];

  /** @var string */
  private $slug;

  /** @var int */
  private $category;

  /** @var string */
  private $description;

  /** @var Workflow */
  private $workflow;

  public function __construct(
    string $slug,
    int $category,
    string $description,
    Workflow $workflow
  ) {
    if (!in_array($category, self::ALL_CATEGORIES)) {
      throw new RuntimeException("$category is not a valid category.");
    }
    $this->slug = $slug;
    $this->category = $category;
    $this->description = $description;
    $this->workflow = $workflow;
  }

  public function getSlug(): string {
    return $this->slug;
  }

  public function getName(): string {
    return $this->workflow->getName();
  }

  public function getCategory(): int {
    return $this->category;
  }

  public function getDescription(): string {
    return $this->description;
  }

  public function getWorkflow(): Workflow {
    return $this->workflow;
  }

  public function toArray(): array {
    return [
      'slug' => $this->getSlug(),
      'name' => $this->getName(),
      'category' => $this->getCategory(),
      'description' => $this->getDescription(),
      'workflow' => $this->getWorkflow()->toArray(),
    ];
  }
}