<?phpnamespace App\Entity;use App\Repository\TransfertStockRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: TransfertStockRepository::class)]class TransfertStock{ #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?Produit $produit = null; #[ORM\Column] private ?int $quantite = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?Boutique $boutiqueSource = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?Boutique $boutiqueDestination = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $dateTransfert = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?User $utilisateur = null; #[ORM\Column(length: 50)] private ?string $statut = 'EN_ATTENTE'; // EN_ATTENTE, VALIDE, ANNULE #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $motif = null; #[ORM\OneToOne(cascade: ['persist', 'remove'])] private ?SortieStock $sortieStock = null; #[ORM\OneToOne(cascade: ['persist', 'remove'])] private ?EntreeStock $entreeStock = null; #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $createdAt = null; #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)] private ?\DateTimeInterface $validatedAt = null; public function __construct() { $this->createdAt = new \DateTime(); $this->dateTransfert = new \DateTime(); $this->statut = 'EN_ATTENTE'; } public function getId(): ?int { return $this->id; } public function getProduit(): ?Produit { return $this->produit; } public function setProduit(?Produit $produit): static { $this->produit = $produit; return $this; } public function getQuantite(): ?int { return $this->quantite; } public function setQuantite(int $quantite): static { $this->quantite = $quantite; return $this; } public function getBoutiqueSource(): ?Boutique { return $this->boutiqueSource; } public function setBoutiqueSource(?Boutique $boutiqueSource): static { $this->boutiqueSource = $boutiqueSource; return $this; } public function getBoutiqueDestination(): ?Boutique { return $this->boutiqueDestination; } public function setBoutiqueDestination(?Boutique $boutiqueDestination): static { $this->boutiqueDestination = $boutiqueDestination; return $this; } public function getDateTransfert(): ?\DateTimeInterface { return $this->dateTransfert; } public function setDateTransfert(\DateTimeInterface $dateTransfert): static { $this->dateTransfert = $dateTransfert; return $this; } public function getUtilisateur(): ?User { return $this->utilisateur; } public function setUtilisateur(?User $utilisateur): static { $this->utilisateur = $utilisateur; return $this; } public function getStatut(): ?string { return $this->statut; } public function setStatut(string $statut): static { $this->statut = $statut; return $this; } public function getMotif(): ?string { return $this->motif; } public function setMotif(?string $motif): static { $this->motif = $motif; return $this; } public function getSortieStock(): ?SortieStock { return $this->sortieStock; } public function setSortieStock(?SortieStock $sortieStock): static { $this->sortieStock = $sortieStock; return $this; } public function getEntreeStock(): ?EntreeStock { return $this->entreeStock; } public function setEntreeStock(?EntreeStock $entreeStock): static { $this->entreeStock = $entreeStock; return $this; } public function getCreatedAt(): ?\DateTimeInterface { return $this->createdAt; } public function setCreatedAt(\DateTimeInterface $createdAt): static { $this->createdAt = $createdAt; return $this; } public function getValidatedAt(): ?\DateTimeInterface { return $this->validatedAt; } public function setValidatedAt(?\DateTimeInterface $validatedAt): static { $this->validatedAt = $validatedAt; return $this; } public function isEnAttente(): bool { return $this->statut === 'EN_ATTENTE'; } public function isValide(): bool { return $this->statut === 'VALIDE'; } public function isAnnule(): bool { return $this->statut === 'ANNULE'; }}