<?php
namespace JanusHercules\FeedManagementCsvExport\Api\Entity;
use App\Entity\ExternalPartner\IntegratedExternalPartnerCustomer;
use App\Entity\RecurrentJob;
use App\Utility\DatabaseIdGenerator;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Column;
use JanusHercules\HighVolumeProcess\Domain\Entity\HighVolumeProcessTask;
use JanusHercules\HighVolumeProcess\Domain\Entity\HighVolumeProcessTaskResultInterface;
#[ORM\Entity]
#[ORM\Table(name: 'work_on_recurrent_job_csv_results')]
class WorkOnRecurrentJobCsvResult implements HighVolumeProcessTaskResultInterface
{
public const MAX_XML_SECTION_LENGTH = 16384;
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
#[ORM\CustomIdGenerator(class: DatabaseIdGenerator::class)]
#[Column(
type : Types::GUID,
unique: true
)]
private ?string $id = null;
public function getId(): ?string
{
return $this->id;
}
#[ORM\ManyToOne(targetEntity: RecurrentJob::class)]
#[ORM\JoinColumn(
name : 'recurrent_jobs_id',
referencedColumnName: 'id',
nullable : false,
onDelete : 'CASCADE'
)]
private RecurrentJob $recurrentJob;
public function getRecurrentJob(): RecurrentJob
{
return $this->recurrentJob;
}
public function setRecurrentJob(RecurrentJob $recurrentJob): void
{
$this->recurrentJob = $recurrentJob;
}
#[Column(
type: Types::TEXT,
)]
private string $csvLine;
public function getCSVLine(): string
{
return $this->csvLine;
}
public function setCSVLine(string $csvLine): void
{
$this->csvLine = $csvLine;
}
#[ORM\ManyToOne(
targetEntity: HighVolumeProcessTask::class,
)]
#[ORM\JoinColumn(
name : 'high_volume_process_tasks_id',
referencedColumnName: 'id',
nullable : false,
onDelete : 'CASCADE'
)]
private HighVolumeProcessTask $task;
public function getTask(): HighVolumeProcessTask
{
return $this->task;
}
public function setTask(HighVolumeProcessTask $task): void
{
$this->task = $task;
}
#[ORM\ManyToOne(targetEntity: IntegratedExternalPartnerCustomer::class)]
#[ORM\JoinColumn(
name : 'integrated_external_partner_customers_id',
referencedColumnName: 'id',
nullable : false,
onDelete : 'CASCADE'
)]
private IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer;
public function getIntegratedExternalPartnerCustomer(): IntegratedExternalPartnerCustomer
{
return $this->integratedExternalPartnerCustomer;
}
public function setIntegratedExternalPartnerCustomer(IntegratedExternalPartnerCustomer $integratedExternalPartnerCustomer): void
{
$this->integratedExternalPartnerCustomer = $integratedExternalPartnerCustomer;
}
}