<?php
namespace App\Entity;
use App\Repository\CarRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
//use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass=CarRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class Car
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="integer")
*/
private $year;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $km;
/**
* @ORM\Column(type="string", length=255)
*/
private $patent;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $pricePurchase;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $priceSale;
/**
* @ORM\ManyToOne(targetEntity=Brand::class, inversedBy="carId")
* @ORM\JoinColumn(nullable=false)
*/
private $brand;
/**
* @ORM\Column(type="string", length=5, nullable=true)
*/
private $priceCurrencyPurchase;
/**
* @ORM\Column(type="string", length=5, nullable=true)
*/
private $priceCurrencySale;
//* @ORM\OneToMany(targetEntity=CarImages::class, mappedBy="car", cascade={"persist", "remove"}, orphanRemoval=true)
/**
* @ORM\OneToMany(targetEntity=CarImages::class, mappedBy="car", cascade={"persist", "remove"}, orphanRemoval=true)
* @ORM\OrderBy({"position" = "ASC"})
*/
private $imageId;
/**
* @ORM\Column(type="json", nullable=true)
*/
private $features = [];
/**
* @ORM\OneToMany(targetEntity=CarBuy::class, mappedBy="car")
*/
private $carBuyId;
/**
* @ORM\OneToMany(targetEntity=CarSale::class, mappedBy="carSale")
*/
private $carSaleId;
/**
* @ORM\OneToMany(targetEntity=CarSale::class, mappedBy="carSalePayment")
*/
private $carSalePaymentId;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $status;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $engineNumber;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $chassisNumber;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $type;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $settlement;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $position;
/**
* @ORM\OneToMany(targetEntity=CarBuy::class, mappedBy="carSwap")
*/
private $carSwapId;
/**
* @ORM\OneToMany(targetEntity=CarResale::class, mappedBy="car")
*/
private $carResales;
/**
* @ORM\ManyToOne(targetEntity=Branches::class, inversedBy="carId")
* @ORM\JoinColumn(nullable=true)
*/
private $branches;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $featuresInfoauto;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $color;
/**
* @ORM\ManyToOne(targetEntity=Destinations::class, inversedBy="cars")
*/
private $destination;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isOpportunity;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is0km;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isImmediateDelivery;
public function __construct()
{
$this->imageId = new ArrayCollection();
$this->carBuyId = new ArrayCollection();
$this->carSaleId = new ArrayCollection();
$this->carSalePaymentId = new ArrayCollection();
$this->carSwapId = new ArrayCollection();
$this->carResales = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getYear(): ?int
{
return $this->year;
}
public function setYear(int $year): self
{
$this->year = $year;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
/**
* @ORM\PrePersist
*/
public function setCreatedAt(): self
{
$this->createdAt = new \DateTime();
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
/**
* @ORM\PreUpdate
*/
public function setUpdatedAt(): self
{
$this->updatedAt = new \DateTime();
return $this;
}
public function getKm(): ?int
{
return $this->km;
}
public function setKm(?int $km): self
{
$this->km = $km;
return $this;
}
public function getPatent(): ?string
{
return $this->patent;
}
public function setPatent(string $patent): self
{
$this->patent = $patent;
return $this;
}
public function getPricePurchase(): ?int
{
return $this->pricePurchase;
}
public function setPricePurchase($pricePurchase): self
{
$this->pricePurchase = str_replace('.', '', $pricePurchase);
return $this;
}
public function getPriceSale(): ?int
{
return $this->priceSale;
}
public function setPriceSale($priceSale): self
{
$this->priceSale = str_replace('.', '', $priceSale);
return $this;
}
public function getBrand(): ?Brand
{
return $this->brand;
}
public function setBrand(?Brand $brand): self
{
$this->brand = $brand;
return $this;
}
public function getPriceCurrency(): ?string
{
return $this->priceCurrency;
}
public function setPriceCurrency(string $priceCurrency): self
{
$this->priceCurrency = $priceCurrency;
return $this;
}
public function getPriceCurrencyPurchase(): ?string
{
return $this->priceCurrencyPurchase;
}
public function setPriceCurrencyPurchase(string $priceCurrencyPurchase): self
{
$this->priceCurrencyPurchase = $priceCurrencyPurchase;
return $this;
}
public function getPriceCurrencySale(): ?string
{
return $this->priceCurrencySale;
}
public function setPriceCurrencySale(string $priceCurrencySale): self
{
$this->priceCurrencySale = $priceCurrencySale;
return $this;
}
/**
* @return Collection|CarImages[]
*/
public function getImageId(): Collection
{
return $this->imageId;
}
public function addImageId(CarImages $img): self
{
if (!$this->imageId->contains($img)) {
$img->setCar($this);
if ($img->getPosition() === 0) {
$img->setPosition($this->imageId->count());
}
$this->imageId->add($img);
}
return $this;
}
public function removeImageId(CarImages $imageId): self
{
if ($this->imageId->removeElement($imageId)) {
// set the owning side to null (unless already changed)
if ($imageId->getCar() === $this) {
$imageId->setCar(null);
}
}
return $this;
}
public function getFeatures(): ?array
{
if ($this->features) {
return $this->features;
} else {
$empty[] = null;
return $empty;
}
}
public function setFeatures(?array $features): self
{
$this->features = $features;
return $this;
}
/**
* @return Collection|CarBuy[]
*/
public function getCarBuyId(): Collection
{
return $this->carBuyId;
}
public function addCarBuyId(CarBuy $carBuyId): self
{
if (!$this->carBuyId->contains($carBuyId)) {
$this->carBuyId[] = $carBuyId;
$carBuyId->setCar($this);
}
return $this;
}
public function removeCarBuyId(CarBuy $carBuyId): self
{
if ($this->carBuyId->removeElement($carBuyId)) {
// set the owning side to null (unless already changed)
if ($carBuyId->getCar() === $this) {
$carBuyId->setCar(null);
}
}
return $this;
}
public function __toString()
{
return $this->name.' ('.$this->patent.')';
}
/**
* @return Collection|CarSale[]
*/
public function getCarSaleId(): Collection
{
return $this->carSaleId;
}
public function addCarSaleId(CarSale $carSaleId): self
{
if (!$this->carSaleId->contains($carSaleId)) {
$this->carSaleId[] = $carSaleId;
$carSaleId->setCarSale($this);
}
return $this;
}
public function removeCarSaleId(CarSale $carSaleId): self
{
if ($this->carSaleId->removeElement($carSaleId)) {
// set the owning side to null (unless already changed)
if ($carSaleId->getCarSale() === $this) {
$carSaleId->setCarSale(null);
}
}
return $this;
}
/**
* @return Collection|CarSale[]
*/
public function getCarSalePaymentId(): Collection
{
return $this->carSalePaymentId;
}
public function addCarSalePaymentId(CarSale $carSalePaymentId): self
{
if (!$this->carSalePaymentId->contains($carSalePaymentId)) {
$this->carSalePaymentId[] = $carSalePaymentId;
$carSalePaymentId->setCarSalePayment($this);
}
return $this;
}
public function removeCarSalePaymentId(CarSale $carSalePaymentId): self
{
if ($this->carSalePaymentId->removeElement($carSalePaymentId)) {
// set the owning side to null (unless already changed)
if ($carSalePaymentId->getCarSalePayment() === $this) {
$carSalePaymentId->setCarSalePayment(null);
}
}
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(?string $status): self
{
$this->status = $status;
return $this;
}
/**
* @return Collection|CarBuy[]
*/
public function getCarSwapId(): Collection
{
return $this->carSwapId;
}
public function addCarSwapId(CarBuy $carSwapId): self
{
if (!$this->carSwapId->contains($carSwapId)) {
$this->carSwapId[] = $carSwapId;
$carSwapId->setCarSwap($this);
}
return $this;
}
public function removeCarSwapId(CarBuy $carSwapId): self
{
if ($this->carSwapId->removeElement($carSwapId)) {
// set the owning side to null (unless already changed)
if ($carSwapId->getCarSwap() === $this) {
$carSwapId->setCarSwap(null);
}
}
return $this;
}
public function getEngineNumber(): ?string
{
return $this->engineNumber;
}
public function setEngineNumber(?string $engineNumber): self
{
$this->engineNumber = $engineNumber;
return $this;
}
public function getChassisNumber(): ?string
{
return $this->chassisNumber;
}
public function setChassisNumber(?string $chassisNumber): self
{
$this->chassisNumber = $chassisNumber;
return $this;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(?string $type): self
{
$this->type = $type;
return $this;
}
public function getSettlement(): ?string
{
return $this->settlement;
}
public function setSettlement(?string $settlement): self
{
$this->settlement = $settlement;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(int $position): self
{
$this->position = $position;
return $this;
}
/**
* @return Collection<int, CarResale>
*/
public function getCarResales(): Collection
{
return $this->carResales;
}
public function addCarResale(CarResale $carResale): self
{
if (!$this->carResales->contains($carResale)) {
$this->carResales[] = $carResale;
$carResale->setCar($this);
}
return $this;
}
public function removeCarResale(CarResale $carResale): self
{
if ($this->carResales->removeElement($carResale)) {
// set the owning side to null (unless already changed)
if ($carResale->getCar() === $this) {
$carResale->setCar(null);
}
}
return $this;
}
public function getBranches(): ?Branches
{
return $this->branches;
}
public function setBranches(?Branches $branches): self
{
$this->branches = $branches;
return $this;
}
public function getFeaturesInfoauto(): ?string
{
return $this->featuresInfoauto;
}
public function setFeaturesInfoauto(?string $featuresInfoauto): self
{
$this->featuresInfoauto = $featuresInfoauto;
return $this;
}
public function getColor(): ?string
{
return $this->color;
}
public function setColor(?string $color): self
{
$this->color = $color;
return $this;
}
public function getDestination(): ?Destinations
{
return $this->destination;
}
public function setDestination(?Destinations $destination): self
{
$this->destination = $destination;
return $this;
}
public function getIsOpportunity(): ?bool
{
return $this->isOpportunity;
}
public function setIsOpportunity(?bool $isOpportunity): self
{
$this->isOpportunity = $isOpportunity;
return $this;
}
public function getIs0km(): ?bool
{
return $this->is0km;
}
public function setIs0km(?bool $is0km): self
{
$this->is0km = $is0km;
return $this;
}
public function getIsImmediateDelivery(): ?bool
{
return $this->isImmediateDelivery;
}
public function setIsImmediateDelivery(?bool $isImmediateDelivery): self
{
$this->isImmediateDelivery = $isImmediateDelivery;
return $this;
}
}