setTable('campaign_lead_event_failed_log') ->setCustomRepositoryClass(FailedLeadEventLogRepository::class) ->addIndex(['date_added'], 'campaign_event_failed_date'); $builder->createOneToOne('log', 'LeadEventLog') ->makePrimaryKey() ->inversedBy('failedLog') ->addJoinColumn('log_id', 'id', false, false, 'CASCADE') ->build(); $builder->addDateAdded(); $builder->addNullableField('reason', 'text'); } /** * Prepares the metadata for API usage. */ public static function loadApiMetadata(ApiMetadataDriver $metadata): void { $metadata->setGroupPrefix('campaignEventFailedLog') ->addProperties( [ 'dateAdded', 'reason', ] ) ->build(); } /** * @return LeadEventLog */ public function getLog() { return $this->log; } /** * @return FailedLeadEventLog */ public function setLog(?LeadEventLog $log = null) { $this->log = $log; if ($log) { $log->setFailedLog($this); } return $this; } /** * @return \DateTimeInterface */ public function getDateAdded() { return $this->dateAdded; } /** * @return FailedLeadEventLog */ public function setDateAdded(?\DateTime $dateAdded = null) { if (null === $dateAdded) { $dateAdded = new \DateTime(); } $this->dateAdded = $dateAdded; return $this; } /** * @return string */ public function getReason() { return $this->reason; } /** * @param string $reason * * @return FailedLeadEventLog */ public function setReason($reason) { $this->reason = $reason; return $this; } }