src/Entity/Vehicle.php line 48
<?phpnamespace App\Entity;use ApiPlatform\Doctrine\Orm\Filter\BooleanFilter;use ApiPlatform\Doctrine\Orm\Filter\NumericFilter;use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;use ApiPlatform\Metadata\ApiFilter;use ApiPlatform\Metadata\ApiResource;use ApiPlatform\Metadata\Get;use ApiPlatform\Metadata\GetCollection;use App\Repository\VehicleRepository;use DateTimeImmutable;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Serializer\Annotation\Groups;#[ApiResource(description: 'Vehicle from dealers ...',operations: [new Get(),new GetCollection(cacheHeaders: ['max_age' => 60,'shared_max_age' => 120])],normalizationContext: ['groups' => ['vehicle:read']])]#[ApiFilter(SearchFilter::class, properties:[ 'partKind' => 'exact', 'category' => 'exact', 'category.url' => 'exact', 'kind' => 'exact', 'manufacturer' => 'exact','model' => 'exact', 'type' => 'exact', 'body' => 'exact', 'color' => 'exact', 'fuel' => 'exact','gearbox' => 'exact', 'conditionVehicle' => 'exact', 'drive' => 'exact', 'country' => 'exact','dealerAd.dealer.codeRegion' => 'exact', 'dealerAd.dealer.codeDistrict' => 'exact', '' => 'exact',])]#[ApiFilter(OrderFilter::class, properties: ['createAt' ])]#[ApiFilter(RangeFilter::class, properties: ['price', 'madeDate', 'mileage', 'engineVolume' ])]#[ApiFilter(BooleanFilter::class, properties: ['visible', 'dealer.visible', 'firstOwner', 'dealerAd.dealer.visibleVehicle', 'equipments.name' ])]#[ApiFilter(NumericFilter::class, properties: ['doors', 'places' ])]#[ORM\Index(columns: ["gearbox"], name: "gearbox_idx" )]#[ORM\Entity(repositoryClass: VehicleRepository::class)]class Vehicle{#[Groups(['vehicle:read'])]#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[Groups(['vehicle:read'])]#[ORM\Column(unique: true, nullable: true)]private ?int $idImport = null;#[Groups(['vehicle:read'])]#[ORM\Column]private ?bool $visible = null;#[Groups(['vehicle:read'])]#[ORM\Column]private ?DateTimeImmutable $createAt = null;#[ORM\Column(nullable: true)]private ?DateTimeImmutable $hiddenAt = null;#[ORM\Column(length: 500, nullable: true)]private ?string $seoSlug = null;#[ORM\Column(length: 255, nullable: true)]private ?string $seoTitle = null;#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $seoDescription = null;#[ORM\Column(length: 255, nullable: true)]private ?string $seoH1 = null;#[ORM\Column(nullable: true)]private ?DateTimeImmutable $urlGeneratedAt = null;#[Groups(['vehicle:read'])]#[ORM\Column(length: 255, nullable: true)]private ?string $vin = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $places = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $doors = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?float $loadCapacity = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?float $totalWeight = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?string $state = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $mileage = null;#[Groups(['vehicle:read'])]#[ORM\Column(length: 5, nullable: true)]private ?string $mileageUnit = null;#[Groups(['vehicle:read'])]#[ORM\Column( nullable: true)]private ?int $madeDate = null;#[Groups(['vehicle:read'])]#[ORM\Column]private ?int $price = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $vat = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $priceBefore = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $priceLeasing = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $paymentLeasingCount = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $ecoVat = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $engineVolume = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $stkTo = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $firstOwner = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $serviceBook = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $tuning = null;#[Groups(['vehicle:read'])]#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $note = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $enginePower = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?string $type = null;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?bool $notCrashed = null;#[Groups(['vehicle:read'])]#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $financialInfo = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleCategory $category = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleKind $kind = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleSubKind $subKind = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleModel $model = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleBody $body = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleColor $color = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleFuel $fuel = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleCondition $conditionVehicle = null;#[Groups(['vehicle:read'])]#[ORM\ManyToMany(targetEntity: VehicleFinancial::class, inversedBy: 'vehicles', cascade: ['persist', 'remove'])]private Collection $financials;#[Groups(['vehicle:read'])]#[ORM\ManyToMany(targetEntity: VehicleEquipment::class, inversedBy: 'vehicles', cascade: ['persist', 'remove'])]private Collection $equipments;#[Groups(['vehicle:read'])]#[ORM\OrderBy(['main'=> 'DESC', 'id' => 'ASC'])]#[ORM\OneToMany(mappedBy: 'vehicle', targetEntity: VehicleImage::class, cascade: ['persist', 'remove'])]private Collection $vehicleImages;#[Groups(['vehicle:read'])]#[ORM\Column(nullable: true)]private ?int $paymentLeasing = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehiclePartKind $partKind = null;#[Groups(['vehicle:read'])]#[ORM\ManyToOne( inversedBy: 'vehicles')]private ?VehicleManufacturer $manufacturer = null;#[ORM\OneToOne(mappedBy: 'vehicle', cascade: ['persist', 'remove'])]private ?VehicleTip $vehicleTip = null;#[ORM\ManyToOne(inversedBy: 'vehicles')]private ?Dealer $dealer = null;#[Groups(['vehicle:read'])]#[ORM\Column(length: 100, nullable: true)]private ?string $gearbox = null;#[ORM\OneToMany(mappedBy: 'vehicle', targetEntity: VehicleForm::class)]private Collection $vehicleForms;public function __construct(){$this->financials = new ArrayCollection();$this->equipments = new ArrayCollection();$this->vehicleImages = new ArrayCollection();$this->vehicleForms = new ArrayCollection();}public function getId(): ?int{return $this->id;}public function getIdImport(): ?int{return $this->idImport;}/*** @return string|null*/public function getType(): ?string{return $this->type;}/*** @param string|null $type*/public function setType(?string $type): void{$this->type = $type;}public function setIdImport(?int $idImport): self{$this->idImport = $idImport;return $this;}public function isVisible(): ?bool{return $this->visible;}public function setVisible(bool $visible): self{$this->visible = $visible;return $this;}public function getCreateAt(): ?DateTimeImmutable{return $this->createAt;}public function setCreateAt(DateTimeImmutable $createAt): self{$this->createAt = $createAt;return $this;}public function getVin(): ?string{return $this->vin;}public function setVin(string $vin): self{$this->vin = $vin;return $this;}public function getPlaces(): ?int{return $this->places;}public function setPlaces(int $places): self{$this->places = $places;return $this;}public function getDoors(): ?int{return $this->doors;}public function setDoors(?int $doors): self{$this->doors = $doors;return $this;}public function getLoadCapacity(): ?float{return $this->loadCapacity;}public function setLoadCapacity(float $loadCapacity): self{$this->loadCapacity = $loadCapacity;return $this;}public function getTotalWeight(): ?float{return $this->totalWeight;}public function setTotalWeight(float $totalWeight): self{$this->totalWeight = $totalWeight;return $this;}public function getState(): ?string{return $this->state;}public function setState(string $state): self{$this->state = $state;return $this;}public function getMileage(): ?int{return $this->mileage;}public function setMileage(?int $mileage): self{$this->mileage = $mileage;return $this;}public function getMileageUnit(): ?string{return $this->mileageUnit;}public function setMileageUnit(?string $mileageUnit): self{$this->mileageUnit = $mileageUnit;return $this;}public function getMadeDate(): ?int{return $this->madeDate;}public function setMadeDate(?int $madeDate): self{$this->madeDate = $madeDate;return $this;}public function getPrice(): ?int{return $this->price;}public function setPrice(int $price): self{$this->price = $price;return $this;}public function isVat(): ?bool{return $this->vat;}public function setVat(bool $vat): self{$this->vat = $vat;return $this;}public function getPriceBefore(): ?int{return $this->priceBefore;}public function setPriceBefore(int $priceBefore): self{$this->priceBefore = $priceBefore;return $this;}public function getPriceLeasing(): ?int{return $this->priceLeasing;}public function setPriceLeasing(?int $priceLeasing): self{$this->priceLeasing = $priceLeasing;return $this;}public function getPaymentLeasingCount(): ?int{return $this->paymentLeasingCount;}public function setPaymentLeasingCount(?int $paymentLeasingCount): self{$this->paymentLeasingCount = $paymentLeasingCount;return $this;}public function isEcoVat(): ?bool{return $this->ecoVat;}public function setEcoVat(bool $ecoVat): self{$this->ecoVat = $ecoVat;return $this;}public function getEngineVolume(): ?int{return $this->engineVolume;}public function setEngineVolume(int $engineVolume): self{$this->engineVolume = $engineVolume;return $this;}public function getStkTo(): ?int{return $this->stkTo;}public function setStkTo(?int $stkTo): self{$this->stkTo = $stkTo;return $this;}public function isFirstOwner(): ?bool{return $this->firstOwner;}public function setFirstOwner(?bool $firstOwner): self{$this->firstOwner = $firstOwner;return $this;}public function isServiceBook(): ?bool{return $this->serviceBook;}public function setServiceBook(bool $serviceBook): self{$this->serviceBook = $serviceBook;return $this;}public function isTuning(): ?bool{return $this->tuning;}public function setTuning(bool $tuning): self{$this->tuning = $tuning;return $this;}public function getNote(): ?string{return $this->note;}public function setNote(?string $note): self{$this->note = $note;return $this;}public function getEnginePower(): ?int{return $this->enginePower;}public function setEnginePower(int $enginePower): self{$this->enginePower = $enginePower;return $this;}public function isNotCrashed(): ?bool{return $this->notCrashed;}public function setNotCrashed(bool $notCrashed): self{$this->notCrashed = $notCrashed;return $this;}public function getFinancialInfo(): ?string{return $this->financialInfo;}public function setFinancialInfo(?string $financialInfo): self{$this->financialInfo = $financialInfo;return $this;}public function getCategory(): ?VehicleCategory{return $this->category;}public function setCategory(?VehicleCategory $category): self{$this->category = $category;return $this;}public function getKind(): ?VehicleKind{return $this->kind;}public function setKind(?VehicleKind $kind): self{$this->kind = $kind;return $this;}public function getSubKind(): ?VehicleSubKind{return $this->subKind;}public function setSubKind(?VehicleSubKind $subKind): self{$this->subKind = $subKind;return $this;}public function getModel(): ?VehicleModel{return $this->model;}public function setModel(?VehicleModel $model): self{$this->model = $model;return $this;}public function getBody(): ?VehicleBody{return $this->body;}public function setBody(?VehicleBody $body): self{$this->body = $body;return $this;}public function getColor(): ?VehicleColor{return $this->color;}public function setColor(?VehicleColor $color): self{$this->color = $color;return $this;}public function getFuel(): ?VehicleFuel{return $this->fuel;}public function setFuel(?VehicleFuel $fuel): self{$this->fuel = $fuel;return $this;}public function getConditionVehicle(): ?VehicleCondition{return $this->conditionVehicle;}public function setConditionVehicle(?VehicleCondition $conditionVehicle): self{$this->conditionVehicle = $conditionVehicle;return $this;}/*** @return Collection<int, VehicleFinancial>*/public function getFinancials(): Collection{return $this->financials;}public function addFinancial(VehicleFinancial $financial): self{if (!$this->financials->contains($financial)) {$this->financials->add($financial);}return $this;}public function removeFinancial(VehicleFinancial $financial): self{$this->financials->removeElement($financial);return $this;}/*** @return Collection<int, VehicleEquipment>*/public function getEquipments(): Collection{return $this->equipments;}public function addEquipment(VehicleEquipment $equipment): self{if (!$this->equipments->contains($equipment)) {$this->equipments->add($equipment);}return $this;}public function removeEquipment(VehicleEquipment $equipment): self{$this->equipments->removeElement($equipment);return $this;}/*** @return Collection<int, VehicleImage>*/public function getVehicleImages(): Collection{return $this->vehicleImages;}public function addVehicleImage(VehicleImage $vehicleImage): self{if (!$this->vehicleImages->contains($vehicleImage)) {$this->vehicleImages->add($vehicleImage);$vehicleImage->setVehicle($this);}return $this;}public function removeVehicleImage(VehicleImage $vehicleImage): self{if ($this->vehicleImages->removeElement($vehicleImage)) {// set the owning side to null (unless already changed)if ($vehicleImage->getVehicle() === $this) {$vehicleImage->setVehicle(null);}}return $this;}public function getPaymentLeasing(): ?int{return $this->paymentLeasing;}public function setPaymentLeasing(?int $paymentLeasing): self{$this->paymentLeasing = $paymentLeasing;return $this;}public function getPartKind(): ?VehiclePartKind{return $this->partKind;}public function setPartKind(?VehiclePartKind $partKind): self{$this->partKind = $partKind;return $this;}public function getManufacturer(): ?VehicleManufacturer{return $this->manufacturer;}public function setManufacturer(?VehicleManufacturer $manufacturer): self{$this->manufacturer = $manufacturer;return $this;}public function getVehicleTip(): ?VehicleTip{return $this->vehicleTip;}public function setVehicleTip(?VehicleTip $vehicleTip): self{// unset the owning side of the relation if necessaryif ($vehicleTip === null && $this->vehicleTip !== null) {$this->vehicleTip->setVehicle(null);}// set the owning side of the relation if necessaryif ($vehicleTip !== null && $vehicleTip->getVehicle() !== $this) {$vehicleTip->setVehicle($this);}$this->vehicleTip = $vehicleTip;return $this;}public function getDealer(): ?Dealer{return $this->dealer;}public function setDealer(?Dealer $dealer): self{$this->dealer = $dealer;return $this;}public function getGearbox(): ?string{return $this->gearbox;}public function setGearbox(?string $gearbox): self{$this->gearbox = $gearbox;return $this;}/*** @return Collection<int, VehicleForm>*/public function getVehicleForms(): Collection{return $this->vehicleForms;}public function addVehicleForm(VehicleForm $vehicleForm): self{if (!$this->vehicleForms->contains($vehicleForm)) {$this->vehicleForms->add($vehicleForm);$vehicleForm->setVehicle($this);}return $this;}public function removeVehicleForm(VehicleForm $vehicleForm): self{if ($this->vehicleForms->removeElement($vehicleForm)) {// set the owning side to null (unless already changed)if ($vehicleForm->getVehicle() === $this) {$vehicleForm->setVehicle(null);}}return $this;}public function getHiddenAt(): ?DateTimeImmutable{return $this->hiddenAt;}public function setHiddenAt(?DateTimeImmutable $hiddenAt): self{$this->hiddenAt = $hiddenAt;return $this;}public function getSeoSlug(): ?string{return $this->seoSlug;}public function setSeoSlug(?string $seoSlug): self{$this->seoSlug = $seoSlug;return $this;}public function getSeoTitle(): ?string{return $this->seoTitle;}public function setSeoTitle(?string $seoTitle): self{$this->seoTitle = $seoTitle;return $this;}public function getSeoDescription(): ?string{return $this->seoDescription;}public function setSeoDescription(?string $seoDescription): self{$this->seoDescription = $seoDescription;return $this;}public function getSeoH1(): ?string{return $this->seoH1;}public function setSeoH1(?string $seoH1): self{$this->seoH1 = $seoH1;return $this;}public function getUrlGeneratedAt(): ?DateTimeImmutable{return $this->urlGeneratedAt;}public function setUrlGeneratedAt(?DateTimeImmutable $urlGeneratedAt): self{$this->urlGeneratedAt = $urlGeneratedAt;return $this;}}