HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/ZelfVerkopen/zelfverkopen.nl/app/KommaApp/Kms/Core/Attributes/PayByLink.php
<?php
namespace App\KommaApp\Kms\Core\Attributes;
use App\KommaApp\Kms\Core\Attributes\Traits\ExplanationTrait;
use App\KommaApp\Kms\Core\Attributes\Traits\LabelTrait;
use App\KommaApp\Kms\Core\Attributes\Traits\PlaceholderTextTrait;
use App\KommaApp\Kms\Core\Attributes\Traits\ReadOnlyTrait;
use App\KommaApp\Orders\Models\Order;

/**
 * Class PayByLink
 * @package App\KommaApp\Kms\Core\Attributes
 */
class PayByLink extends Attribute
{
    use LabelTrait;
    use ExplanationTrait;

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

    /** @var AutocompleteInput $linkedAttribute */
    private $linkedAttribute;

    /** @var boolean $readOnly */
    private $readOnly;

    /**
     * TextField constructor.
     * @param string $labelText
     */
    public function __construct(string $labelText)
    {
        $this->setLabelText($labelText);
        $this->generateUrl = '';
        $this->readOnly = false;

        parent::__construct();
    }

    /**
     * Returns a view that visually represents this attribute
     */
    public function render()
    {
        return \View::make('kms/attributes.payByLink', [
            'attribute' => $this
        ]);
    }

    /**
     * The route that must be called to generate a payment url
     *
     * @param $route
     * @return PayByLink
     */
    public function setGenerateUrl(string $route): PayByLink
    {
        $this->generateUrl = $route;
        return $this;
    }

    public function getGenerateUrl()
    {
        return $this->generateUrl;
    }

    /**
     * @return AutocompleteInput
     */
    public function getLinkedAttribute(): AutocompleteInput
    {
        return $this->linkedAttribute;
    }

    /**
     * @return string
     */
    public function getLinkedAttributeKey(): string
    {
        if(!$this->linkedAttribute) return '';
        return $this->linkedAttribute->getKey();
    }

    /**
     * @param AutocompleteInput $linkedAttribute
     * @return PayByLink
     */
    public function setLinkedAttribute(AutocompleteInput $linkedAttribute): PayByLink
    {
        $this->linkedAttribute = $linkedAttribute;
        return $this;
    }

    /**
     * @return bool
     */
    public function getReadOnly(): bool
    {
        return $this->readOnly;
    }

    /**
     * @param bool $readOnly
     * @return PayByLink
     */
    public function setReadOnly(bool $readOnly): PayByLink
    {
        $this->readOnly = $readOnly;
        return $this;
    }
}