chrisbryan17's picture
Upload folder using huggingface_hub
d2897cd verified
<?php
namespace Mautic\PluginBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
use Mautic\CoreBundle\Entity\CacheInvalidateInterface;
use Mautic\CoreBundle\Entity\CommonEntity;
class Integration extends CommonEntity implements CacheInvalidateInterface
{
public const CACHE_NAMESPACE = 'IntegrationSettings';
/**
* @var int
*/
private $id;
/**
* @var Plugin|null
*/
private $plugin;
/**
* @var string
*/
private $name;
/**
* @var bool
*/
private $isPublished = false;
/**
* @var array
*/
private $supportedFeatures = [];
/**
* @var array
*/
private $apiKeys = [];
/**
* @var array
*/
private $featureSettings = [];
public static function loadMetadata(ORM\ClassMetadata $metadata): void
{
$builder = new ClassMetadataBuilder($metadata);
$builder->setTable('plugin_integration_settings')
->setCustomRepositoryClass(IntegrationRepository::class);
$builder->createField('id', 'integer')
->makePrimaryKey()
->generatedValue()
->build();
$builder->createManyToOne('plugin', 'Plugin')
->inversedBy('integrations')
->addJoinColumn('plugin_id', 'id', true, false, 'CASCADE')
->build();
$builder->addField('name', 'string');
$builder->createField('isPublished', 'boolean')
->columnName('is_published')
->build();
$builder->createField('supportedFeatures', 'array')
->columnName('supported_features')
->nullable()
->build();
$builder->createField('apiKeys', 'array')
->columnName('api_keys')
->build();
$builder->createField('featureSettings', 'array')
->columnName('feature_settings')
->nullable()
->build();
}
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return Plugin|null
*/
public function getPlugin()
{
return $this->plugin;
}
/**
* @param mixed $plugin
*
* @return Integration
*/
public function setPlugin($plugin)
{
$this->plugin = $plugin;
return $this;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*
* @return Integration
*/
public function setName($name)
{
$this->isChanged('name', $name);
$this->name = $name;
return $this;
}
/**
* @return mixed
*/
public function getIsPublished()
{
return $this->isPublished;
}
/**
* @param mixed $isPublished
*
* @return Integration
*/
public function setIsPublished($isPublished)
{
$this->isChanged('isPublished', $isPublished);
$this->isPublished = $isPublished;
return $this;
}
public function isPublished(): bool
{
return $this->isPublished;
}
/**
* @return mixed
*/
public function getSupportedFeatures()
{
return $this->supportedFeatures;
}
/**
* @param mixed $supportedFeatures
*
* @return Integration
*/
public function setSupportedFeatures($supportedFeatures)
{
$this->isChanged('supportedFeatures', $supportedFeatures);
$this->supportedFeatures = $supportedFeatures;
return $this;
}
/**
* @return mixed
*/
public function getApiKeys()
{
return $this->apiKeys;
}
/**
* @param mixed $apiKeys
*
* @return Integration
*/
public function setApiKeys($apiKeys)
{
$this->apiKeys = $apiKeys;
return $this;
}
/**
* @return mixed
*/
public function getFeatureSettings()
{
return $this->featureSettings;
}
/**
* @param mixed $featureSettings
*
* @return Integration
*/
public function setFeatureSettings($featureSettings)
{
$this->isChanged('featureSettings', $featureSettings);
$this->featureSettings = $featureSettings;
return $this;
}
public function getCacheNamespacesToDelete(): array
{
return [self::CACHE_NAMESPACE];
}
}