<?php
namespace App\Entity;
use App\Entity\Traits\LinkTrait;
use App\Entity\Traits\MetaTrait;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\Traits\ActiveTrait;
use App\Entity\Traits\DeleteTrait;
use App\Entity\Traits\TranslateTrait;
use Gedmo\Mapping\Annotation as Gedmo;
use App\Entity\Traits\ImageUploadTrait;
use App\Entity\Traits\SitemapableTrait;
use App\Entity\Traits\TitleAndContentTrait;
use App\Entity\Traits\FifthImageUploadTrait;
use App\Entity\Traits\ThirdImageUploadTrait;
use App\Entity\Traits\FourthImageUploadTrait;
use App\Entity\Traits\SecondImageUploadTrait;
use App\Entity\Interfaces\DefaultLinkedEntity;
use Gedmo\Timestampable\Traits\TimestampableEntity;
/**
* CaseStudies.
*
* @Gedmo\Loggable
*
* @Gedmo\TranslationEntity(class="App\Entity\CaseStudiesTranslations")
*/
#[ORM\Entity(repositoryClass: \App\Repository\CaseStudiesRepository::class)]
#[ORM\Table(name: 'casestudies')]
class CaseStudies implements DefaultLinkedEntity
{
use TitleAndContentTrait;
use LinkTrait;
use MetaTrait;
use ActiveTrait;
use DeleteTrait;
use ImageUploadTrait;
use SecondImageUploadTrait;
use ThirdImageUploadTrait;
use FourthImageUploadTrait;
use FifthImageUploadTrait;
use TimestampableEntity;
use TranslateTrait;
use SitemapableTrait;
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private int $id;
#[ORM\Column(type: 'boolean')]
private $featured;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $clientName;
#[ORM\Column(type: 'text', nullable: true)]
private $clientTestimonial;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $clientTestimonialAttestant;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $clientTestimonialAttestantJobTitle;
#[ORM\Column(type: 'string', length: 255)]
private $projectName;
#[ORM\ManyToOne(targetEntity: Sectors::class, inversedBy: 'caseStudies')]
private $projectType;
#[ORM\Column(type: 'date', nullable: true)]
private $projectStartDate;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $projectDuration;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $projectBudget;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $projectLocation;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $detailSubtitle;
#[ORM\Column(type: 'text')]
private $detailContent;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $challengesSubtitle;
#[ORM\Column(type: 'text')]
private $challengesContent;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $solutionSubtitle;
#[ORM\Column(type: 'text')]
private $solutionContent;
#[ORM\Column(type: 'text')]
private $kicker;
#[ORM\ManyToOne(targetEntity: Gallery::class)]
private $gallery;
#[ORM\ManyToOne(targetEntity: Testimonial::class)]
private $testimonial;
public function getId(): int
{
return $this->id;
}
// REQUIRED BY THE META LINKS TRAIT
public function getLinkedPageId(): int
{
// CW TODO _ SET THIS CORRECTLY
return 9;
}
public function getFeatured(): ?bool
{
return $this->featured;
}
public function setFeatured(bool $featured): self
{
$this->featured = $featured;
return $this;
}
public function getClientName(): ?string
{
return $this->clientName;
}
public function setClientName(?string $clientName): self
{
$this->clientName = $clientName;
return $this;
}
public function getClientTestimonial(): ?string
{
return $this->clientTestimonial;
}
public function setClientTestimonial(?string $clientTestimonial): self
{
$this->clientTestimonial = $clientTestimonial;
return $this;
}
public function getClientTestimonialAttestant(): ?string
{
return $this->clientTestimonialAttestant;
}
public function setClientTestimonialAttestant(?string $clientTestimonialAttestant): self
{
$this->clientTestimonialAttestant = $clientTestimonialAttestant;
return $this;
}
public function getClientTestimonialAttestantJobTitle(): ?string
{
return $this->clientTestimonialAttestantJobTitle;
}
public function setClientTestimonialAttestantJobTitle(?string $clientTestimonialAttestantJobTitle): self
{
$this->clientTestimonialAttestantJobTitle = $clientTestimonialAttestantJobTitle;
return $this;
}
public function getProjectName(): ?string
{
return $this->projectName;
}
public function setProjectName(string $projectName): self
{
$this->projectName = $projectName;
return $this;
}
public function getProjectType(): ?Sectors
{
return $this->projectType;
}
public function setProjectType(?Sectors $projectType): self
{
$this->projectType = $projectType;
return $this;
}
public function getProjectStartDate(): ?\DateTimeInterface
{
return $this->projectStartDate;
}
public function setProjectStartDate(?\DateTimeInterface $projectStartDate): self
{
$this->projectStartDate = $projectStartDate;
return $this;
}
public function getProjectDuration(): ?string
{
return $this->projectDuration;
}
public function setProjectDuration(?string $projectDuration): self
{
$this->projectDuration = $projectDuration;
return $this;
}
public function getProjectBudget(): ?string
{
return $this->projectBudget;
}
public function setProjectBudget(?string $projectBudget): self
{
$this->projectBudget = $projectBudget;
return $this;
}
public function getProjectLocation(): ?string
{
return $this->projectLocation;
}
public function setProjectLocation(?string $projectLocation): self
{
$this->projectLocation = $projectLocation;
return $this;
}
public function getDetailSubtitle(): ?string
{
return $this->detailSubtitle;
}
public function setDetailSubtitle(?string $detailSubtitle): self
{
$this->detailSubtitle = $detailSubtitle;
return $this;
}
public function getDetailContent(): ?string
{
return $this->detailContent;
}
public function setDetailContent(string $detailContent): self
{
$this->detailContent = $detailContent;
return $this;
}
public function getChallengesSubtitle(): ?string
{
return $this->challengesSubtitle;
}
public function setChallengesSubtitle(?string $challengesSubtitle): self
{
$this->challengesSubtitle = $challengesSubtitle;
return $this;
}
public function getChallengesContent(): ?string
{
return $this->challengesContent;
}
public function setChallengesContent(string $challengesContent): self
{
$this->challengesContent = $challengesContent;
return $this;
}
public function getSolutionSubtitle(): ?string
{
return $this->solutionSubtitle;
}
public function setSolutionSubtitle(?string $solutionSubtitle): self
{
$this->solutionSubtitle = $solutionSubtitle;
return $this;
}
public function getSolutionContent(): ?string
{
return $this->solutionContent;
}
public function setSolutionContent(string $solutionContent): self
{
$this->solutionContent = $solutionContent;
return $this;
}
public function getKicker(): ?string
{
return $this->kicker;
}
public function setKicker(string $kicker): self
{
$this->kicker = $kicker;
return $this;
}
public function getGallery(): ?Gallery
{
return $this->gallery;
}
public function setGallery(?Gallery $gallery): self
{
$this->gallery = $gallery;
return $this;
}
public function getTestimonial(): ?Testimonial
{
return $this->testimonial;
}
public function setTestimonial(?Testimonial $testimonial): self
{
$this->testimonial = $testimonial;
return $this;
}
public function getSitemapRouteParams(): array
{
return ['slug' => $this->getSlug()];
}
public function isIncludedInSitemap(): bool
{
return $this->isActive() &&
! $this->isDeleted();
;
}
}