chrisbryan17's picture
Upload folder using huggingface_hub
d2897cd verified
<?php
declare(strict_types=1);
namespace Mautic\IntegrationsBundle\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
class ObjectMapping
{
/**
* @var int
*/
private $id;
private ?\DateTimeInterface $dateCreated;
/**
* @var string
*/
private $integration;
/**
* @var string
*/
private $internalObjectName;
/**
* @var string
*/
private $internalObjectId;
/**
* @var string
*/
private $integrationObjectName;
/**
* @var string
*/
private $integrationObjectId;
private ?\DateTimeInterface $lastSyncDate;
/**
* @var array
*/
private $internalStorage = [];
/**
* @var bool
*/
private $isDeleted = false;
/**
* @var string|null
*/
private $integrationReferenceId;
public static function loadMetadata(ORM\ClassMetadata $metadata): void
{
$builder = new ClassMetadataBuilder($metadata);
$builder
->setTable('sync_object_mapping')
->setCustomRepositoryClass(ObjectMappingRepository::class)
->addIndex(['integration', 'integration_object_name', 'integration_object_id', 'integration_reference_id'], 'integration_object')
->addIndex(['integration', 'integration_object_name', 'integration_reference_id', 'integration_object_id'], 'integration_reference')
->addIndex(['integration', 'internal_object_name', 'last_sync_date'], 'integration_integration_object_name_last_sync_date')
->addIndex(['integration', 'last_sync_date'], 'integration_last_sync_date');
$builder->addId();
$builder
->createField('dateCreated', Types::DATETIME_MUTABLE)
->columnName('date_created')
->build();
$builder
->createField('integration', Types::STRING)
->build();
$builder
->createField('internalObjectName', Types::STRING)
->columnName('internal_object_name')
->build();
$builder->addBigIntIdField('internalObjectId', 'internal_object_id', false);
$builder
->createField('integrationObjectName', Types::STRING)
->columnName('integration_object_name')
->build();
// Must be a string as not all IDs are integer based
$builder
->createField('integrationObjectId', Types::STRING)
->columnName('integration_object_id')
->build();
$builder
->createField('lastSyncDate', Types::DATETIME_MUTABLE)
->columnName('last_sync_date')
->build();
$builder
->createField('internalStorage', Types::JSON)
->columnName('internal_storage')
->build();
$builder
->createField('isDeleted', Types::BOOLEAN)
->columnName('is_deleted')
->build();
$builder
->createField('integrationReferenceId', Types::STRING)
->columnName('integration_reference_id')
->nullable()
->build();
}
/**
* @throws \Exception
*/
public function __construct(?\DateTime $dateCreated = null)
{
if (null === $dateCreated) {
$dateCreated = new \DateTime();
}
$this->dateCreated = $dateCreated;
$this->lastSyncDate = $dateCreated;
}
/**
* @return int|null ?int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*
* @return ObjectMapping
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* @return \DateTimeInterface|null
*/
public function getDateCreated()
{
return $this->dateCreated;
}
/**
* @return string
*/
public function getIntegration()
{
return $this->integration;
}
/**
* @param string $integration
*
* @return ObjectMapping
*/
public function setIntegration($integration)
{
$this->integration = $integration;
return $this;
}
/**
* @return string
*/
public function getInternalObjectName()
{
return $this->internalObjectName;
}
/**
* @param string $internalObjectName
*
* @return ObjectMapping
*/
public function setInternalObjectName($internalObjectName)
{
$this->internalObjectName = $internalObjectName;
return $this;
}
public function getInternalObjectId(): int
{
return (int) $this->internalObjectId;
}
/**
* @param int $internalObjectId
*
* @return ObjectMapping
*/
public function setInternalObjectId($internalObjectId)
{
$this->internalObjectId = (string) $internalObjectId;
return $this;
}
/**
* @return string
*/
public function getIntegrationObjectName()
{
return $this->integrationObjectName;
}
/**
* @param string $integrationObjectName
*
* @return ObjectMapping
*/
public function setIntegrationObjectName($integrationObjectName)
{
$this->integrationObjectName = $integrationObjectName;
return $this;
}
/**
* @return string
*/
public function getIntegrationObjectId()
{
return $this->integrationObjectId;
}
/**
* @param string $integrationObjectId
*
* @return ObjectMapping
*/
public function setIntegrationObjectId($integrationObjectId)
{
$this->integrationObjectId = $integrationObjectId;
return $this;
}
/**
* @return \DateTimeInterface
*/
public function getLastSyncDate()
{
return $this->lastSyncDate;
}
/**
* @param \DateTimeInterface|null $lastSyncDate
*
* @return ObjectMapping
*
* @throws \Exception
*/
public function setLastSyncDate($lastSyncDate)
{
if (null === $lastSyncDate) {
$lastSyncDate = new \DateTime();
}
$this->lastSyncDate = $lastSyncDate;
return $this;
}
/**
* @return array
*/
public function getInternalStorage()
{
return $this->internalStorage;
}
/**
* @param array $internalStorage
*
* @return ObjectMapping
*/
public function setInternalStorage($internalStorage)
{
$this->internalStorage = $internalStorage;
return $this;
}
/**
* @return $this
*/
public function appendToInternalStorage($key, $value)
{
$this->internalStorage[$key] = $value;
return $this;
}
/**
* @return bool
*/
public function isDeleted()
{
return $this->isDeleted;
}
/**
* @param bool $isDeleted
*
* @return ObjectMapping
*/
public function setIsDeleted($isDeleted)
{
$this->isDeleted = $isDeleted;
return $this;
}
/**
* @return string|null
*/
public function getIntegrationReferenceId()
{
return $this->integrationReferenceId;
}
/**
* @param string|null $integrationReferenceId
*
* @return ObjectMapping
*/
public function setIntegrationReferenceId($integrationReferenceId)
{
$this->integrationReferenceId = $integrationReferenceId;
return $this;
}
}