<?php
namespace App\Entity\ContentDistribution;
use App\Utility\GuidUtility;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*
* @ORM\Table(
* name="indeed_stats_entries",
* indexes={
*
* @ORM\Index(name="day_job_reference_number", columns={"day", "job_reference_number"})
* }
* )
*/
class IndeedStatsEntry
{
public function __construct(
DateTime $retrievedAt,
DateTime $day,
string $campaignId,
string $advertisement,
string $job,
string $jobReferenceNumber,
string $platform,
int $clicks,
int $organicClicks,
int $impressions,
int $organicImpressions,
int $applyStarts,
int $organicApplyStarts,
int $conversions,
int $indeedApplyConversions,
float $spend
) {
$this->retrievedAt = $retrievedAt;
$this->day = $day;
$this->campaignId = $campaignId;
$this->advertisement = $advertisement;
$this->job = $job;
$this->jobReferenceNumber = $jobReferenceNumber;
$this->platform = $platform;
$this->clicks = $clicks;
$this->organicClicks = $organicClicks;
$this->impressions = $impressions;
$this->organicImpressions = $organicImpressions;
$this->applyStarts = $applyStarts;
$this->organicApplyStarts = $organicApplyStarts;
$this->conversions = $conversions;
$this->indeedApplyConversions = $indeedApplyConversions;
$this->spend = $spend;
}
/**
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
private ?string $id;
public function setId(string $id)
{
GuidUtility::validOrThrow($id);
$this->id = $id;
}
public function getId(): ?string
{
return $this->id;
}
/**
* @ORM\Column(name="retrieved_at", type="datetime", nullable=false)
*/
private DateTime $retrievedAt;
public function getRetrievedAt(): DateTime
{
return $this->retrievedAt;
}
/**
* @ORM\Column(name="day", type="date", nullable=false)
*/
private DateTime $day;
public function getDay(): DateTime
{
return $this->day;
}
/**
* @ORM\Column(type="string", name="campaign_id", nullable=false, length=64)
*/
private string $campaignId;
public function getCampaignId(): string
{
return $this->campaignId;
}
/**
* @ORM\Column(type="string", name="advertisement", nullable=false, length=256)
*/
private string $advertisement;
public function getAdvertisement(): string
{
return $this->advertisement;
}
/**
* @ORM\Column(type="string", name="job", nullable=false, length=256)
*/
private string $job;
public function getJob(): string
{
return $this->job;
}
/**
* @ORM\Column(type="string", name="job_reference_number", nullable=false, length=256)
*/
private string $jobReferenceNumber;
public function getJobReferenceNumber(): string
{
return $this->jobReferenceNumber;
}
/**
* @ORM\Column(type="string", name="platform", nullable=false, length=256)
*/
private string $platform;
public function getPlatform(): string
{
return $this->platform;
}
/**
* @ORM\Column(type="integer", name="clicks", nullable=false, options={"unsigned"=true})
*/
private int $clicks;
public function getClicks(): int
{
return $this->clicks;
}
/**
* @ORM\Column(type="integer", name="organic_clicks", nullable=false, options={"unsigned"=true})
*/
private int $organicClicks;
public function getOrganicClicks(): int
{
return $this->organicClicks;
}
/**
* @ORM\Column(type="integer", name="impressions", nullable=false, options={"unsigned"=true})
*/
private int $impressions;
public function getImpressions(): int
{
return $this->impressions;
}
/**
* @ORM\Column(type="integer", name="organic_impressions", nullable=false, options={"unsigned"=true})
*/
private int $organicImpressions;
public function getOrganicImpressions(): int
{
return $this->organicImpressions;
}
/**
* @ORM\Column(type="integer", name="apply_starts", nullable=false, options={"unsigned"=true})
*/
private int $applyStarts;
public function getApplyStarts(): int
{
return $this->applyStarts;
}
/**
* @ORM\Column(type="integer", name="organic_apply_starts", nullable=false, options={"unsigned"=true})
*/
private int $organicApplyStarts;
public function getOrganicApplyStarts(): int
{
return $this->organicApplyStarts;
}
/**
* @ORM\Column(type="integer", name="conversions", nullable=false, options={"unsigned"=true})
*/
private int $conversions;
public function getConversions(): int
{
return $this->conversions;
}
/**
* @ORM\Column(type="integer", name="indeed_apply_conversions", nullable=false, options={"unsigned"=true})
*/
private int $indeedApplyConversions;
public function getIndeedApplyConversions(): int
{
return $this->indeedApplyConversions;
}
/**
* @ORM\Column(type="float", name="spend", nullable=false, options={"unsigned"=true})
*/
private float $spend;
public function getSpend(): float
{
return $this->spend;
}
}