Sindbad~EG File Manager

Current Path : /opt/nginxhttpd_/vendor/extensions-cpanel/cpanel-development-lib/src/Entity/
Upload File :
Current File : //opt/nginxhttpd_/vendor/extensions-cpanel/cpanel-development-lib/src/Entity/Chain.php

<?php

namespace O2switch\CpanelLib\Entity;

use Doctrine\ORM\Mapping as ORM;
use O2switch\CpanelLib\Repository\ChainRepository;
use O2switch\CpanelLib\DataEntity\ApiVhost;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Chain
 *
 * @ORM\Table(
 *     name="Chain",
 *     uniqueConstraints={
 *          @ORM\UniqueConstraint(name="unique_index", columns={"customizationId", "previousChainId", "position"})
 *     },
 *     indexes={
 *          @ORM\Index(name="IDX_70C337CE837341C5", columns={"customizationId"})
 *     }
 * )
 * @ORM\Entity(repositoryClass=ChainRepository::class)
 */
class Chain
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id()
     * @ORM\GeneratedValue()
     */
    private $id;

    /**
     * @var int
     * @ORM\Column(name="previousChainId", type="bigint", nullable=false, options={"default"="-1"})
     * @Assert\NotNull()
     * @Assert\NotBlank()
     * @Assert\Type(type="integer")
     */
    private $previousChainId = -1;

    /**
     * @var int
     * @ORM\Column(name="position", type="integer", nullable=false)
     * @Assert\NotNull()
     * @Assert\NotBlank()
     * @Assert\Type(type="integer")
     */
    private $position;

    /**
     * @var int
     * @ORM\Column(name="appType", type="integer", nullable=false)
     * @Assert\Choice(choices={Customization::APP_NGINX, Customization::APP_VARNISH, Customization::APP_LSCACHE})
     */
    private $appType;

    /**
     * @var string
     * @ORM\Column(name="serverIp", type="string", length=15, nullable=false)
     * @Assert\NotNull()
     * @Assert\NotBlank()
     * @Assert\Ip()
     */
    private $serverIp;

    /**
     * @var string
     * @ORM\Column(name="templateName", type="string", length=60, nullable=false)
     * @Assert\NotNull()
     * @Assert\NotBlank()
     */
    private $templateName;

    /**
     * @var array|null
     *
     * @ORM\Column(name="additionalData", type="json", length=65535, nullable=true)
     */
    private $additionalData;

    /**
     * @var Customization
     *
     * @ORM\ManyToOne(targetEntity=Customization::class, inversedBy="chains", cascade={"persist"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="customizationId", referencedColumnName="id", nullable=false)
     * })
     */
    private $customization;

    public function __construct(?ApiVhost $vhost = null, ?string $app = null){
        if($vhost instanceof ApiVhost){
            $this->setTemplateName($vhost->getTemplateName());
            $this->setServerIp($vhost->getListenToIp());
            if(!empty($vhost->getAdditionalsParams())) {
                $this->setAdditionalData($vhost->getAdditionalsParams());
            }
        }
        switch($app){
            case 'xtremcache':
            case 'varnish':
                $this->setAppType(Customization::APP_VARNISH);
                $this->setPosition(1);
                break;
            case 'ipxtender':
                $this->setAppType(Customization::APP_NGINX);
                $this->setPosition(0);
                $this->setPreviousChainId(-1);
                break;
            case 'lslb':
            case 'lscache':
            case 'litespeed':
            $this->setAppType(Customization::APP_LSCACHE);
            $this->setPosition(1);
                break;
            case 'forwarder':
                $this->setAppType(Customization::APP_NGINX);
                $this->setPosition(2);
                break;
        }
    }

    /**
     * @return int
     */
    public function getPreviousChainId(): int
    {
        return $this->previousChainId;
    }

    /**
     * @param int $previousChainId
     * @return Chain
     */
    public function setPreviousChainId(int $previousChainId): Chain
    {
        $this->previousChainId = $previousChainId;
        return $this;
    }

    /**
     * @return int
     */
    public function getPosition(): int
    {
        return $this->position;
    }

    /**
     * @param int $position
     * @return Chain
     */
    public function setPosition(int $position): Chain
    {
        $this->position = $position;
        return $this;
    }

    /**
     * @return int
     */
    public function getAppType(): int
    {
        return $this->appType;
    }

    /**
     * @param int $appType
     * @return Chain
     */
    public function setAppType(int $appType): Chain
    {
        $this->appType = $appType;
        return $this;
    }

    /**
     * @return string
     */
    public function getServerIp(): string
    {
        return $this->serverIp;
    }

    /**
     * @param string $serverIp
     * @return Chain
     */
    public function setServerIp(string $serverIp): Chain
    {
        $this->serverIp = $serverIp;
        return $this;
    }

    /**
     * @return string
     */
    public function getTemplateName(): string
    {
        return $this->templateName;
    }

    /**
     * @param string $templateName
     * @return Chain
     */
    public function setTemplateName(string $templateName): Chain
    {
        $this->templateName = $templateName;
        return $this;
    }

    /**
     * @return array|null
     */
    public function getAdditionalData(): ?array
    {
        return $this->additionalData;
    }

    /**
     * @param array|null $additionalData
     * @return Chain
     */
    public function setAdditionalData(?array $additionalData): Chain
    {
        $this->additionalData = $additionalData;
        return $this;
    }

    /**
     * @return Customization
     */
    public function getCustomization(): Customization
    {
        return $this->customization;
    }

    /**
     * @param Customization $customization
     * @return $this
     */
    public function setCustomization(Customization $customization): Chain
    {
        $this->customization = $customization;
        return $this;
    }

    /**
     * @return int
     */
    public function getId(): int
    {
        return $this->id;
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists