<?php
namespace App\Entity;
use App\Repository\CarBuyRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=CarBuyRepository::class)
* @ORM\HasLifecycleCallbacks()
*/
class CarBuy
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $price;
/**
* @ORM\Column(type="string", length=255)
*/
private $origin;
/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @ORM\ManyToOne(targetEntity=Car::class, inversedBy="carBuyId")
* @ORM\JoinColumn(nullable=false)
*/
private $car;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="carBuyId")
*/
private $user;
/**
* @ORM\Column(type="integer", nullable=true)
* @Assert\LessThan(propertyPath="price", message="It must be less than the purchase price")
*/
private $moneyAdvance;
/**
* @ORM\Column(type="boolean")
*/
private $isDone;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $isDoneDate;
/**
* @ORM\ManyToOne(targetEntity=Client::class, inversedBy="carBuyClientId")
*/
private $client;
/**
* @ORM\Column(type="string", length=5)
*/
private $currency;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @ORM\ManyToOne(targetEntity=Car::class, inversedBy="carSwapId")
*/
private $carSwap;
/**
* @ORM\OneToMany(targetEntity=CarBuyDocument::class, mappedBy="carBuy", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $documents;
public function __construct()
{
$this->documents = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getPrice(): ?int
{
return $this->price;
}
public function setPrice($price): self
{
$this->price = str_replace('.', '', $price);
return $this;
}
public function getOrigin(): ?string
{
return $this->origin;
}
public function setOrigin(string $origin): self
{
$this->origin = $origin;
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 getCar(): ?Car
{
return $this->car;
}
public function setCar(?Car $car): self
{
$this->car = $car;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getMoneyAdvance(): ?int
{
return $this->moneyAdvance;
}
//public function setMoneyAdvance(?int $moneyAdvance): self
public function setMoneyAdvance($moneyAdvance): self
{
$this->moneyAdvance = str_replace('.', '', $moneyAdvance);
return $this;
}
public function getIsDone(): ?bool
{
return $this->isDone;
}
public function setIsDone(bool $isDone): self
{
$this->isDone = $isDone;
return $this;
}
public function getClient(): ?Client
{
return $this->client;
}
public function setClient(?Client $client): self
{
$this->client = $client;
return $this;
}
public function getCurrency(): ?string
{
return $this->currency;
}
public function setCurrency(string $currency): self
{
$this->currency = $currency;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): self
{
$this->description = $description;
return $this;
}
public function getCarSwap(): ?Car
{
return $this->carSwap;
}
public function setCarSwap(?Car $carSwap): self
{
$this->carSwap = $carSwap;
return $this;
}
public function getIsDoneDate(): ?\DateTimeInterface
{
return $this->isDoneDate;
}
public function setIsDoneDate(?\DateTimeInterface $isDoneDate): self
{
$this->isDoneDate = $isDoneDate;
return $this;
}
/**
* @return Collection<int, CarBuyDocument>
*/
public function getDocuments(): Collection
{
return $this->documents;
}
public function addDocument(CarBuyDocument $document): self
{
if (!$this->documents->contains($document)) {
$this->documents[] = $document;
$document->setCarBuy($this);
}
return $this;
}
public function removeDocument(CarBuyDocument $document): self
{
if ($this->documents->removeElement($document)) {
if ($document->getCarBuy() === $this) {
$document->setCarBuy(null);
}
}
return $this;
}
}