<?php
namespace Acme\SudcmsBundle\Entity;
use Acme\SudcmsBundle\Repository\EcoProductsRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: EcoProductsRepository::class)]
class EcoProducts
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'integer')]
private $category_id;
#[ORM\Column(type: 'integer', nullable: true)]
private $provider_id;
#[ORM\Column(type: 'integer')]
private $mark_id;
#[ORM\Column(type: 'datetime')]
private $prod_creation_date;
#[ORM\Column(name: 'prod_type', type: 'string', length: 0, nullable: false, columnDefinition: "enum('single', 'multiple','bundle')", options: ['default' => "'single'"])]
private $prod_type;
#[ORM\Column(type: 'string', length: 255)]
private $prod_model;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $prod_picture;
#[ORM\Column(type: 'text', nullable: true)]
private $prod_description;
#[ORM\Column(type: 'float', nullable: true)]
private $prod_selling_price;
#[ORM\Column(type: 'float', nullable: true)]
private $prod_reference_price;
#[ORM\Column(name: 'prod_price_type', type: 'string', length: 0, nullable: false, columnDefinition: "enum('vente','promo','solde')")]
private $prod_price_type;
#[ORM\Column(type: 'boolean', nullable: true)]
private $prod_novelty;
#[ORM\Column(type: 'boolean', nullable: true)]
private $prod_soon;
#[ORM\Column(type: 'boolean', nullable: true)]
private $prod_isonline;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $prod_meta;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $prod_title;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $prod_keywords;
#[ORM\Column(type: 'text', nullable: true)]
private $prod_ingredient;
#[ORM\Column(type: 'text', nullable: true)]
private $prod_conservation;
#[ORM\Column(type: 'text', nullable: true)]
private $prod_feature;
#[ORM\Column(type: 'integer', nullable: true)]
private $prodNbrVentes;
#[ORM\ManyToOne(targetEntity: EcoProviders::class, inversedBy: 'products')]
private $provider;
#[ORM\OneToMany(targetEntity: EcoProductsMedias::class, mappedBy: 'product', orphanRemoval: true)]
private $medias;
#[ORM\Column(type: 'boolean', nullable: true)]
private $priceKgIsVisible;
#[ORM\Column(type: 'integer', nullable: true)]
private $siteId;
#[ORM\Column(name: 'is_deliverable', type: 'string', length: 0, nullable: false, columnDefinition: "enum('livrable','sur-place','non-concerne')")]
private $isDeliverable;
public function __construct()
{
$this->mediaName = new ArrayCollection();
$this->medias = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getProviderId(): ?int
{
return $this->provider_id;
}
public function setProviderId(int $provider_id): self
{
$this->provider_id = $provider_id;
return $this;
}
public function getMarkId(): ?int
{
return $this->mark_id;
}
public function setMarkId(int $mark_id): self
{
$this->mark_id = $mark_id;
return $this;
}
public function getProdCreationDate(): ?\DateTimeInterface
{
return $this->prod_creation_date;
}
public function setProdCreationDate(\DateTimeInterface $prod_creation_date): self
{
$this->prod_creation_date = $prod_creation_date;
return $this;
}
public function getProdModel(): ?string
{
return $this->prod_model;
}
public function setProdModel(string $prod_model): self
{
$this->prod_model = $prod_model;
return $this;
}
public function getProdDescription(): ?string
{
return $this->prod_description;
}
public function setProdDescription(?string $prod_description): self
{
$this->prod_description = $prod_description;
return $this;
}
public function getProdSellingPrice(): ?float
{
return $this->prod_selling_price;
}
public function setProdSellingPrice(?float $prod_selling_price): self
{
$this->prod_selling_price = $prod_selling_price;
return $this;
}
public function getProdReferencePrice(): ?float
{
return $this->prod_reference_price;
}
public function setProdReferencePrice(?float $prod_reference_price): self
{
$this->prod_reference_price = $prod_reference_price;
return $this;
}
public function getProdPriceType(): ?string
{
return $this->prod_price_type;
}
public function setProdPriceType(?string $prod_price_type): self
{
$this->prod_price_type = $prod_price_type;
return $this;
}
public function getProdNovelty(): ?bool
{
return $this->prod_novelty;
}
public function setProdNovelty(?bool $prod_novelty): self
{
$this->prod_novelty = $prod_novelty;
return $this;
}
public function getProdSoon(): ?bool
{
return $this->prod_soon;
}
public function setProdSoon(?bool $prod_soon): self
{
$this->prod_soon = $prod_soon;
return $this;
}
public function getProdIsonline(): ?bool
{
return $this->prod_isonline;
}
public function setProdIsonline(?bool $prod_isonline): self
{
$this->prod_isonline = $prod_isonline;
return $this;
}
public function getProdMeta(): ?string
{
return $this->prod_meta;
}
public function setProdMeta(?string $prod_meta): self
{
$this->prod_meta = $prod_meta;
return $this;
}
public function getProdTitle(): ?string
{
return $this->prod_title;
}
public function setProdTitle(?string $prod_title): self
{
$this->prod_title = $prod_title;
return $this;
}
public function getProdKeywords(): ?string
{
return $this->prod_keywords;
}
public function setProdKeywords(?string $prod_keywords): self
{
$this->prod_keywords = $prod_keywords;
return $this;
}
public function getCategoryId(): ?int
{
return $this->category_id;
}
public function setCategoryId(int $category_id): self
{
$this->category_id = $category_id;
return $this;
}
public function getProdPicture(): ?string
{
return $this->prod_picture;
}
public function setProdPicture(?string $prod_picture): self
{
$this->prod_picture = $prod_picture;
return $this;
}
public function getProdType(): ?string
{
return $this->prod_type;
}
public function setProdType(string $prod_type): self
{
$this->prod_type = $prod_type;
return $this;
}
public function getProdIngredient(): ?string
{
return $this->prod_ingredient;
}
public function setProdIngredient(?string $prod_ingredient): self
{
$this->prod_ingredient = $prod_ingredient;
return $this;
}
public function getProdConservation(): ?string
{
return $this->prod_conservation;
}
public function setProdConservation(?string $prod_conservation): self
{
$this->prod_conservation = $prod_conservation;
return $this;
}
public function getProdFeature(): ?string
{
return $this->prod_feature;
}
public function setProdFeature(?string $prod_feature): self
{
$this->prod_feature = $prod_feature;
return $this;
}
public function getprovider(): ?EcoProviders
{
return $this->provider;
}
public function setprovider(?EcoProviders $provider): self
{
$this->provider = $provider;
return $this;
}
public function getProdNbrVentes(): ?int
{
return $this->prodNbrVentes;
}
public function setProdNbrVentes(?int $prodNbrVentes): self
{
$this->prodNbrVentes = $prodNbrVentes;
return $this;
}
/**
* @return Collection<int, EcoProductsMedias>
*/
public function getMedias(): Collection
{
return $this->medias;
}
public function addMedia(EcoProductsMedias $media): self
{
if (!$this->medias->contains($media)) {
$this->medias[] = $media;
$media->setProduct($this);
}
return $this;
}
public function removeMedia(EcoProductsMedias $media): self
{
if ($this->medias->removeElement($media)) {
// set the owning side to null (unless already changed)
if ($media->getProduct() === $this) {
$media->setProduct(null);
}
}
return $this;
}
public function getPriceKgIsVisible(): ?bool
{
return $this->priceKgIsVisible;
}
public function setPriceKgIsVisible(?bool $priceKgIsVisible): self
{
$this->priceKgIsVisible = $priceKgIsVisible;
return $this;
}
public function getSiteId(): ?int
{
return $this->siteId;
}
public function setSiteId(?int $siteId): self
{
$this->siteId = $siteId;
return $this;
}
public function getIsDeliverable(): ?string
{
return $this->isDeliverable;
}
public function setIsDeliverable(?string $isDeliverable): self
{
$this->isDeliverable = $isDeliverable;
return $this;
}
}