Initial commit: CloudOps infrastructure platform
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
namespace Mautic\PageBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver;
|
||||
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
|
||||
|
||||
class Trackable
|
||||
{
|
||||
/**
|
||||
* @var Redirect
|
||||
*/
|
||||
private $redirect;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $channel;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $channelId;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $hits = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $uniqueHits = 0;
|
||||
|
||||
public static function loadMetadata(ORM\ClassMetadata $metadata): void
|
||||
{
|
||||
$builder = new ClassMetadataBuilder($metadata);
|
||||
|
||||
$builder->setTable('channel_url_trackables')
|
||||
->setCustomRepositoryClass(TrackableRepository::class)
|
||||
->addIndex(['channel', 'channel_id'], 'channel_url_trackable_search');
|
||||
|
||||
$builder->createManyToOne('redirect', Redirect::class)
|
||||
->addJoinColumn('redirect_id', 'id', true, false, 'CASCADE')
|
||||
->cascadePersist()
|
||||
->inversedBy('trackables')
|
||||
->isPrimaryKey()
|
||||
->build();
|
||||
|
||||
$builder->createField('channelId', 'integer')
|
||||
->columnName('channel_id')
|
||||
->makePrimaryKey()
|
||||
->build();
|
||||
|
||||
$builder->addField('channel', 'string');
|
||||
|
||||
$builder->addField('hits', 'integer');
|
||||
|
||||
$builder->addNamedField('uniqueHits', 'integer', 'unique_hits');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the metadata for API usage.
|
||||
*/
|
||||
public static function loadApiMetadata(ApiMetadataDriver $metadata): void
|
||||
{
|
||||
$metadata->setGroupPrefix('trackable')
|
||||
->addListProperties(
|
||||
[
|
||||
'redirect',
|
||||
'channelId',
|
||||
'channel',
|
||||
'hits',
|
||||
'uniqueHits',
|
||||
]
|
||||
)
|
||||
->build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Redirect
|
||||
*/
|
||||
public function getRedirect()
|
||||
{
|
||||
return $this->redirect;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Trackable
|
||||
*/
|
||||
public function setRedirect(Redirect $redirect)
|
||||
{
|
||||
$this->redirect = $redirect;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getChannel()
|
||||
{
|
||||
return $this->channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $channel
|
||||
*
|
||||
* @return Trackable
|
||||
*/
|
||||
public function setChannel($channel)
|
||||
{
|
||||
$this->channel = $channel;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getChannelId()
|
||||
{
|
||||
return $this->channelId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $channelId
|
||||
*
|
||||
* @return Trackable
|
||||
*/
|
||||
public function setChannelId($channelId)
|
||||
{
|
||||
$this->channelId = $channelId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getHits()
|
||||
{
|
||||
return $this->hits;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $hits
|
||||
*
|
||||
* @return Trackable
|
||||
*/
|
||||
public function setHits($hits)
|
||||
{
|
||||
$this->hits = $hits;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getUniqueHits()
|
||||
{
|
||||
return $this->uniqueHits;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $uniqueHits
|
||||
*
|
||||
* @return Trackable
|
||||
*/
|
||||
public function setUniqueHits($uniqueHits)
|
||||
{
|
||||
$this->uniqueHits = $uniqueHits;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user