<?php
namespace App\Entity\Gos;
use App\Repository\Gos\ProductVariantUpsellingRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass=ProductVariantUpsellingRepository::class)
* @ORM\HasLifecycleCallbacks
* @Vich\Uploadable
*/
class ProductVariantUpselling
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $imageUrl;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $useUploadedImage;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @var string
*/
private $uploadedImage;
/**
* @Vich\UploadableField(mapping="upselling_image", fileNameProperty="uploadedImage")
*/
private $imageFile;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @ORM\ManyToOne(targetEntity=ProductVariant::class, inversedBy="productVariantPromoted")
* @ORM\JoinColumn(nullable=false)
*/
private $promotedProduct;
/**
* @ORM\ManyToOne(targetEntity=ProductVariant::class, inversedBy="productVariantUpsellings")
* @ORM\JoinColumn(nullable=false)
*/
private $productVariant;
/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @ORM\PrePersist()
*/
public function prePersist()
{
$this->createdAt = new \DateTime();
}
/**
* @ORM\PreUpdate()
*/
public function preUpdate()
{
$this->updatedAt = new \DateTime();
}
public function getId(): ?int
{
return $this->id;
}
public function getImageUrl(): ?string
{
return $this->imageUrl;
}
public function setImageUrl(?string $imageUrl): self
{
$this->imageUrl = $imageUrl;
return $this;
}
public function getUseUploadedImage(): ?bool
{
return $this->useUploadedImage;
}
public function setUseUploadedImage(bool $useUploadedImage): self
{
$this->useUploadedImage = $useUploadedImage;
return $this;
}
public function setImageFile(?File $imageFile = null)
{
$this->imageFile = $imageFile;
if ($imageFile)
{
$this->updatedAt = new \DateTime('now');
}
}
public function getImageFile(): ?File
{
return $this->imageFile;
}
public function setUploadedImage(?string $uploadedImage)
{
$this->uploadedImage = $uploadedImage;
}
public function getUploadedImage()
{
return $this->uploadedImage;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getPromotedProduct(): ?ProductVariant
{
return $this->promotedProduct;
}
public function setPromotedProduct(?ProductVariant $promotedProduct): self
{
$this->promotedProduct = $promotedProduct;
return $this;
}
public function getProductVariant(): ?ProductVariant
{
return $this->productVariant;
}
public function setProductVariant(?ProductVariant $productVariant): self
{
$this->productVariant = $productVariant;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
}