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;
}
}