Files
ludikevent_crm/src/Entity/Formules.php
Serreau Jovann b6f90721ad ```
 feat(Formules): Ajoute champ 'pos' pour ordonner les formules.
🐛 fix(CrmEditor): Améliore la gestion du copier-coller et retire le toast d'erreur.
```
2026-01-30 09:48:27 +01:00

351 lines
8.1 KiB
PHP

<?php
namespace App\Entity;
use App\Repository\FormulesRepository;
use Cocur\Slugify\Slugify;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Attribute\Uploadable;
use Vich\UploaderBundle\Mapping\Attribute\UploadableField;
#[ORM\Entity(repositoryClass: FormulesRepository::class)]
#[Uploadable]
class Formules
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private ?string $name = null;
#[UploadableField(mapping: 'image_formules', fileNameProperty: 'imageName', size: 'imageSize')]
private ?File $imageFile = null;
#[ORM\Column(nullable: true)]
private ?string $imageName = null;
#[ORM\Column(nullable: true)]
private ?int $imageSize = null;
#[ORM\Column(nullable: true)]
private ?\DateTimeImmutable $updatedAt = null;
#[ORM\Column(length: 255)]
private ?string $type = null;
/**
* @var Collection<int, FormulesProductInclus>
*/
#[ORM\OneToMany(targetEntity: FormulesProductInclus::class, mappedBy: 'formules')]
private Collection $formulesProductIncluses;
#[ORM\Column(nullable: true)]
private ?bool $isPublish = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $description = null;
#[ORM\Column(nullable: true)]
private ?float $price1j = null;
#[ORM\Column(nullable: true)]
private ?float $price2j = null;
#[ORM\Column(nullable: true)]
private ?float $price5j = null;
#[ORM\Column(nullable: true)]
private ?float $caution = null;
/**
* @var Collection<int, FormulesOptionsInclus>
*/
#[ORM\OneToMany(targetEntity: FormulesOptionsInclus::class, mappedBy: 'formule')]
private Collection $formulesOptionsIncluses;
#[ORM\OneToOne(mappedBy: 'formule', cascade: ['persist', 'remove'])]
private ?FormulesRestriction $formulesRestriction = null;
#[ORM\Column(nullable: true)]
private ?int $pos = null;
public function __construct()
{
$this->formulesProductIncluses = new ArrayCollection();
$this->formulesOptionsIncluses = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): static
{
$this->name = $name;
return $this;
}
/**
* @return \DateTimeImmutable|null
*/
public function getUpdatedAt(): ?\DateTimeImmutable
{
return $this->updatedAt;
}
/**
* @return File|null
*/
public function getImageFile(): ?File
{
return $this->imageFile;
}
/**
* @return string|null
*/
public function getImageName(): ?string
{
return $this->imageName;
}
/**
* @return int|null
*/
public function getImageSize(): ?int
{
return $this->imageSize;
}
/**
* @param \DateTimeImmutable|null $updatedAt
*/
public function setUpdatedAt(?\DateTimeImmutable $updatedAt): void
{
$this->updatedAt = $updatedAt;
}
/**
* @param File|null $imageFile
*/
public function setImageFile(?File $imageFile): void
{
$this->imageFile = $imageFile;
}
/**
* @param string|null $imageName
*/
public function setImageName(?string $imageName): void
{
$this->imageName = $imageName;
}
/**
* @param int|null $imageSize
*/
public function setImageSize(?int $imageSize): void
{
$this->imageSize = $imageSize;
}
public function getType(): ?string
{
return $this->type;
}
public function setType(string $type): static
{
$this->type = $type;
return $this;
}
/**
* @return Collection<int, FormulesProductInclus>
*/
public function getFormulesProductIncluses(): Collection
{
return $this->formulesProductIncluses;
}
public function addFormulesProductInclus(FormulesProductInclus $formulesProductInclus): static
{
if (!$this->formulesProductIncluses->contains($formulesProductInclus)) {
$this->formulesProductIncluses->add($formulesProductInclus);
$formulesProductInclus->setFormules($this);
}
return $this;
}
public function removeFormulesProductInclus(FormulesProductInclus $formulesProductInclus): static
{
if ($this->formulesProductIncluses->removeElement($formulesProductInclus)) {
// set the owning side to null (unless already changed)
if ($formulesProductInclus->getFormules() === $this) {
$formulesProductInclus->setFormules(null);
}
}
return $this;
}
public function isPublish(): ?bool
{
return $this->isPublish;
}
public function setIsPublish(bool $isPublish): static
{
$this->isPublish = $isPublish;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): static
{
$this->description = $description;
return $this;
}
public function getPrice1j(): ?float
{
return $this->price1j;
}
public function setPrice1j(?float $price1j): static
{
$this->price1j = $price1j;
return $this;
}
public function getPrice2j(): ?float
{
return $this->price2j;
}
public function setPrice2j(?float $price2j): static
{
$this->price2j = $price2j;
return $this;
}
public function getPrice5j(): ?float
{
return $this->price5j;
}
public function setPrice5j(?float $price5j): static
{
$this->price5j = $price5j;
return $this;
}
public function getCaution(): ?float
{
return $this->caution;
}
public function setCaution(?float $caution): static
{
$this->caution = $caution;
return $this;
}
public function slug()
{
$s = new Slugify();
return $this->id."-".$s->slugify($this->name);
}
/**
* @return Collection<int, FormulesOptionsInclus>
*/
public function getFormulesOptionsIncluses(): Collection
{
return $this->formulesOptionsIncluses;
}
public function addFormulesOptionsInclus(FormulesOptionsInclus $formulesOptionsInclus): static
{
if (!$this->formulesOptionsIncluses->contains($formulesOptionsInclus)) {
$this->formulesOptionsIncluses->add($formulesOptionsInclus);
$formulesOptionsInclus->setFormule($this);
}
return $this;
}
public function removeFormulesOptionsInclus(FormulesOptionsInclus $formulesOptionsInclus): static
{
if ($this->formulesOptionsIncluses->removeElement($formulesOptionsInclus)) {
// set the owning side to null (unless already changed)
if ($formulesOptionsInclus->getFormule() === $this) {
$formulesOptionsInclus->setFormule(null);
}
}
return $this;
}
public function getFormulesRestriction(): ?FormulesRestriction
{
return $this->formulesRestriction;
}
public function setFormulesRestriction(?FormulesRestriction $formulesRestriction): static
{
// unset the owning side of the relation if necessary
if ($formulesRestriction === null && $this->formulesRestriction !== null) {
$this->formulesRestriction->setFormule(null);
}
// set the owning side of the relation if necessary
if ($formulesRestriction !== null && $formulesRestriction->getFormule() !== $this) {
$formulesRestriction->setFormule($this);
}
$this->formulesRestriction = $formulesRestriction;
return $this;
}
public function getPos(): ?int
{
return $this->pos;
}
public function setPos(?int $pos): static
{
$this->pos = $pos;
return $this;
}
}