![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/plugins/MauticSocialBundle/Entity/ |
<?php namespace MauticPlugin\MauticSocialBundle\Entity; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; use Mautic\LeadBundle\Entity\Lead as TheLead; class TweetStat { /** * @var int */ private $id; /** * ID of the tweet from Twitter. * * @var string|null */ private $twitterTweetId; /** * @var Tweet|null */ private $tweet; /** * @var TheLead|null */ private $lead; /** * @var string */ private $handle; /** * @var DateTime */ private $dateSent; /** * @var bool|null */ private $isFailed = false; /** * @var int|null */ private $retryCount = 0; /** * @var string|null */ private $source; /** * @var int|null */ private $sourceId; /** * @var int|null */ private $favoriteCount = 0; /** * @var int|null */ private $retweetCount = 0; /** * @var array|null */ private $responseDetails = []; public static function loadMetadata(ORM\ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('tweet_stats') ->setCustomRepositoryClass(TweetStatRepository::class) ->addIndex(['tweet_id', 'lead_id'], 'stat_tweet_search') ->addIndex(['lead_id', 'tweet_id'], 'stat_tweet_search2') ->addIndex(['is_failed'], 'stat_tweet_failed_search') ->addIndex(['source', 'source_id'], 'stat_tweet_source_search') ->addIndex(['favorite_count'], 'favorite_count_index') ->addIndex(['retweet_count'], 'retweet_count_index') ->addIndex(['date_sent'], 'tweet_date_sent') ->addIndex(['twitter_tweet_id'], 'twitter_tweet_id_index'); $builder->addId(); $builder->createManyToOne('tweet', 'Tweet') ->inversedBy('stats') ->addJoinColumn('tweet_id', 'id', true, false, 'SET NULL') ->build(); $builder->createField('twitterTweetId', 'string') ->columnName('twitter_tweet_id') ->nullable() ->build(); $builder->addLead(true, 'SET NULL'); $builder->createField('handle', 'string') ->build(); $builder->createField('dateSent', 'datetime') ->columnName('date_sent') ->nullable() ->build(); $builder->createField('isFailed', 'boolean') ->columnName('is_failed') ->nullable() ->build(); $builder->createField('retryCount', 'integer') ->columnName('retry_count') ->nullable() ->build(); $builder->createField('source', 'string') ->nullable() ->build(); $builder->createField('sourceId', 'integer') ->columnName('source_id') ->nullable() ->build(); $builder->addNullableField('favoriteCount', 'integer', 'favorite_count'); $builder->addNullableField('retweetCount', 'integer', 'retweet_count'); $builder->addNullableField('responseDetails', Types::JSON, 'response_details'); } /** * Prepares the metadata for API usage. */ public static function loadApiMetadata(ApiMetadataDriver $metadata): void { $metadata->setGroupPrefix('stat') ->addProperties( [ 'id', 'tweetId', 'handle', 'dateSent', 'isFailed', 'retryCount', 'favoriteCount', 'retweetCount', 'source', 'sourceId', 'lead', 'tweet', 'responseDetails', ] ) ->build(); } /** * @return mixed */ public function getId() { return $this->id; } /** * @return string|null */ public function getTwitterTweetId() { return $this->twitterTweetId; } /** * @param string $twitterTweetId * * @return $this */ public function setTwitterTweetId($twitterTweetId) { $this->twitterTweetId = $twitterTweetId; return $this; } /** * @return mixed */ public function getDateSent() { return $this->dateSent; } /** * @param mixed $dateSent */ public function setDateSent($dateSent): void { $this->dateSent = $dateSent; } /** * @return Tweet */ public function getTweet() { return $this->tweet; } /** * @param mixed $tweet */ public function setTweet(Tweet $tweet = null): void { $this->tweet = $tweet; } /** * @return TheLead */ public function getLead() { return $this->lead; } /** * @param mixed $lead */ public function setLead(TheLead $lead = null): void { $this->lead = $lead; } /** * @return mixed */ public function getRetryCount() { return $this->retryCount; } /** * @param mixed $retryCount */ public function setRetryCount($retryCount): void { $this->retryCount = $retryCount; } public function retryCountUp(): void { $this->setRetryCount($this->getRetryCount() + 1); } /** * @return int */ public function getFavoriteCount() { return $this->favoriteCount; } /** * @param int $favoriteCount * * @return $this */ public function setFavoriteCount($favoriteCount) { $this->favoriteCount = $favoriteCount; return $this; } /** * @return int */ public function getRetweetCount() { return $this->retweetCount; } /** * @param int $retweetCount * * @return $this */ public function setRetweetCount($retweetCount) { $this->retweetCount = $retweetCount; return $this; } /** * @return mixed */ public function getIsFailed() { return $this->isFailed; } /** * @param mixed $isFailed */ public function setIsFailed($isFailed): void { $this->isFailed = $isFailed; } /** * @return mixed */ public function isFailed() { return $this->getIsFailed(); } /** * @return string|null */ public function getHandle() { return $this->handle; } /** * @param mixed $handle */ public function setHandle($handle): void { $this->handle = $handle; } /** * @return mixed */ public function getSource() { return $this->source; } /** * @param mixed $source */ public function setSource($source): void { $this->source = $source; } /** * @return mixed */ public function getSourceId() { return $this->sourceId; } /** * @param mixed $sourceId */ public function setSourceId($sourceId): void { $this->sourceId = (int) $sourceId; } /** * @return mixed */ public function getResponseDetails() { return $this->responseDetails; } /** * @param mixed $responseDetails * * @return Stat */ public function setResponseDetails($responseDetails) { $this->responseDetails = $responseDetails; return $this; } }