<?phpnamespace App\Entity;use App\Entity\CommandeStatus;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use App\Repository\CommandeRepository;use Doctrine\Common\Collections\Collection;use Doctrine\Common\Collections\ArrayCollection;#[ORM\Entity(repositoryClass: CommandeRepository::class)]class Commande{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $date_cmd = null; #[ORM\Column(length: 30)] private ?string $numero_cmd = null; #[ORM\Column] private ?float $prix_total = null; #[ORM\Column(length: 30)] private ?string $status_cmd = null; #[ORM\Column(length: 255)] private $workflowState; #[ORM\Column(type: Types::JSON)] private array $recap_cmd = []; #[ORM\OneToMany(mappedBy: 'commande', targetEntity: CommandeDetails::class, orphanRemoval: true)] private Collection $commandeDetails; #[ORM\ManyToOne(inversedBy: 'commandes')] private ?User $user = null; #[ORM\Column(length: 100)] private ?string $nom = null; #[ORM\Column(length: 100)] private ?string $prenom = null; #[ORM\ManyToOne] private ?Addresse $addresse = null; #[ORM\ManyToOne(inversedBy: 'commandes')] private ?CommandeStatus $cmdStatus = null; #[ORM\Column(nullable: true)] private ?float $frais_livraison = null; #[ORM\OneToOne(inversedBy: 'commande', cascade: ['persist', 'remove'])] private ?Facture $facture = null; public function __construct() { $this->commandeDetails = new ArrayCollection(); // <// Définir l'état initial $this->setWorkflowState('created'); } public function getId(): ?int { return $this->id; } public function getDateCmd(): ?\DateTimeInterface { return $this->date_cmd; } public function setDateCmd(\DateTimeInterface $date_cmd): self { $this->date_cmd = $date_cmd; return $this; } public function getNumeroCmd(): ?string { return $this->numero_cmd; } public function setNumeroCmd(string $numero_cmd): self { $this->numero_cmd = $numero_cmd; return $this; } public function getPrixTotal(): ?float { return $this->prix_total; } public function setPrixTotal(float $prix_total): self { $this->prix_total = $prix_total; return $this; } public function getStatusCmd(): ?string { return $this->status_cmd; } public function setStatusCmd(string $status_cmd): self { $this->status_cmd = $status_cmd; return $this; } public function getRecapCmd(): array { return $this->recap_cmd; } public function setRecapCmd(array $recap_cmd): self { $this->recap_cmd = $recap_cmd; return $this; } /** * @return Collection<int, CommandeDetails> */ public function getCommandeDetails(): Collection { return $this->commandeDetails; } public function addCommandeDetail(CommandeDetails $commandeDetail): self { if (!$this->commandeDetails->contains($commandeDetail)) { $this->commandeDetails->add($commandeDetail); $commandeDetail->setCommande($this); } return $this; } public function removeCommandeDetail(CommandeDetails $commandeDetail): self { if ($this->commandeDetails->removeElement($commandeDetail)) { // set the owning side to null (unless already changed) if ($commandeDetail->getCommande() === $this) { $commandeDetail->setCommande(null); } } return $this; } public function getUser(): ?User { return $this->user; } public function setUser(?User $user): self { $this->user = $user; return $this; } public function getNom(): ?string { return $this->nom; } public function setNom(string $nom): self { $this->nom = $nom; return $this; } public function getPrenom(): ?string { return $this->prenom; } public function setPrenom(string $prenom): self { $this->prenom = $prenom; return $this; } public function getAddresse(): ?Addresse { return $this->addresse; } public function setAddresse(?Addresse $addresse): self { $this->addresse = $addresse; return $this; } public function getCmdStatus(): ?CommandeStatus { return $this->cmdStatus; } public function setCmdStatus(?CommandeStatus $cmdStatus): self { $this->cmdStatus = $cmdStatus; return $this; } public function getFraisLivraison(): ?float { return $this->frais_livraison; } public function setFraisLivraison(?float $frais_livraison): self { $this->frais_livraison = $frais_livraison; return $this; } public function getWorkflowState(): string { return $this->workflowState; } public function setWorkflowState(string $workflowState): void { $this->workflowState = $workflowState; } public function getFacture(): ?Facture { return $this->facture; } public function setFacture(?Facture $facture): self { $this->facture = $facture; return $this; }}