<?phpnamespace 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\SubTitleTrait;use App\Entity\Traits\SortOrderTrait;use App\Entity\Traits\TranslateTrait;use Gedmo\Mapping\Annotation as Gedmo;use App\Entity\Traits\ImageUploadTrait;use App\Entity\Traits\VideoUploadTrait;use Doctrine\Common\Collections\Criteria;use App\Entity\Traits\TitleAndContentTrait;use Doctrine\Common\Collections\Collection;use App\Entity\Traits\SecondImageUploadTrait;use App\Entity\Interfaces\DefaultLinkedEntity;use App\Entity\Traits\FeaturedTrait;use Doctrine\Common\Collections\ArrayCollection;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 SubTitleTrait; use LinkTrait; use MetaTrait; use FeaturedTrait; use ActiveTrait; use DeleteTrait; use ImageUploadTrait; use SecondImageUploadTrait; use TimestampableEntity; use TranslateTrait; use SortOrderTrait; #[ORM\Column(name: 'id', type: 'integer')] #[ORM\Id] #[ORM\GeneratedValue(strategy: 'AUTO')] private int $id; #[ORM\ManyToOne(targetEntity: Client::class)] #[ORM\JoinColumn(nullable: false)] private $client; #[ORM\Column(type: 'string', length: 255)] private $location; #[ORM\Column(type: 'string', length: 255, nullable: true)] private $duration; #[ORM\Column(type: 'text', nullable: true)] private $scope; #[ORM\OneToMany(mappedBy: 'caseStudy', targetEntity: CaseStudySlideItem::class)] #[ORM\OrderBy(['sortOrder' => 'ASC'])] private $caseStudySlideItems; #[ORM\Column(type: 'boolean')] private $featuredInMenu; public function __construct() { $this->caseStudySlideItems = new ArrayCollection(); } public function getId(): int { return $this->id; } public function getLinkedPageId(): int { return 26; } public function getClient(): ?Client { return $this->client; } public function setClient(?Client $client): self { $this->client = $client; return $this; } public function getLocation(): ?string { return $this->location; } public function setLocation(string $location): self { $this->location = $location; return $this; } public function getDuration(): ?string { return $this->duration; } public function setDuration(?string $duration): self { $this->duration = $duration; return $this; } public function getscope(): ?string { return $this->scope; } public function setScope(?string $scope): self { $this->scope = $scope; return $this; } /** * @return Collection<int, CaseStudySlideItem> */ public function getCaseStudySlideItems(): Collection { return $this->caseStudySlideItems; } public function addCaseStudySlideItem(CaseStudySlideItem $caseStudySlideItem): self { if (!$this->caseStudySlideItems->contains($caseStudySlideItem)) { $this->caseStudySlideItems[] = $caseStudySlideItem; $caseStudySlideItem->setCaseStudy($this); } return $this; } public function removeCaseStudySlideItem(CaseStudySlideItem $caseStudySlideItem): self { if ($this->caseStudySlideItems->removeElement($caseStudySlideItem)) { // set the owning side to null (unless already changed) if ($caseStudySlideItem->getCaseStudy() === $this) { $caseStudySlideItem->setCaseStudy(null); } } return $this; } public function getActiveCaseStudySlideItems() { $criteria = Criteria::create() ->andWhere(Criteria::expr()->eq('deleted', false)); return $this->caseStudySlideItems->matching($criteria); } public function getFeaturedInMenu(): ?bool { return $this->featuredInMenu; } public function setFeaturedInMenu(bool $featuredInMenu): self { $this->featuredInMenu = $featuredInMenu; return $this; }}