Spaces:
No application file
No application file
namespace Mautic\ReportBundle\Entity; | |
use Doctrine\DBAL\Types\Types; | |
use Doctrine\ORM\Mapping as ORM; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
class Scheduler | |
{ | |
/** | |
* @var int | |
*/ | |
private $id; | |
public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
{ | |
$builder = new ClassMetadataBuilder($metadata); | |
$builder->setTable('reports_schedulers') | |
->setCustomRepositoryClass(SchedulerRepository::class); | |
$builder->addId(); | |
$builder->createManyToOne('report', Report::class) | |
->addJoinColumn('report_id', 'id', false, false, 'CASCADE') | |
->build(); | |
$builder->createField('scheduleDate', Types::DATETIME_MUTABLE) | |
->columnName('schedule_date') | |
->nullable(false) | |
->build(); | |
} | |
public function __construct( | |
private Report $report, | |
private \DateTimeInterface $scheduleDate | |
) { | |
} | |
/** | |
* Get id. | |
* | |
* @return int | |
*/ | |
public function getId() | |
{ | |
return $this->id; | |
} | |
/** | |
* @return Report | |
*/ | |
public function getReport() | |
{ | |
return $this->report; | |
} | |
/** | |
* @return \DateTimeInterface | |
*/ | |
public function getScheduleDate() | |
{ | |
return $this->scheduleDate; | |
} | |
} | |