src/Entity/ModeFinance.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Traits\TimeStampable;
  4. use App\Repository\ModeFinanceRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  12. #[ORM\Entity(repositoryClass: ModeFinanceRepository::class)]
  13. #[UniqueEntity(
  14.     fields: ['title',],
  15.     errorPath: 'title',
  16.     message: 'Le nom que vous avez saisi est déjà utilisé',
  17. )]
  18. #[ORM\HasLifecycleCallbacks]
  19. class ModeFinance
  20. {
  21.     use TimeStampable;
  22.     #[ORM\Id]
  23.     #[ORM\GeneratedValue]
  24.     #[ORM\Column]
  25.     #[Groups(["modeFinance:read", "projetBailleur:read", "entity:write", "activiteBailleur:read", 'activity:read'])]
  26.     private ?int $id = null;
  27.     #[ORM\Column(length: 255)]
  28.     #[Groups(["modeFinance:read", "projetBailleur:read", "entity:write", "activiteBailleur:read", 'activity:read'])]
  29.     #[Assert\NotBlank(message: "Veuillez remplir ce champ")]
  30.     private ?string $title = null;
  31.     #[ORM\Column(type: Types::TEXT, nullable: true)]
  32.     #[Groups(["modeFinance:read", "entity:write", "'activity:read'"])]
  33.     private ?string $description = null;
  34.     #[ORM\OneToMany(mappedBy: 'modeFinance', targetEntity: ProjetBailleur::class)]
  35.     private Collection $projetBailleurs;
  36.     #[ORM\ManyToOne(inversedBy: 'modeFinances')]
  37.     private ?User $createdBy = null;
  38.     #[ORM\OneToMany(mappedBy: 'modeFinance', targetEntity: ActiviteBailleur::class)]
  39.     private Collection $activiteBailleurs;
  40.     public function __construct()
  41.     {
  42.         $this->projetBailleurs = new ArrayCollection();
  43.         $this->createdAt = new \DateTimeImmutable();
  44.         $this->activiteBailleurs = new ArrayCollection();
  45.         $this->updatedAt = new \DateTimeImmutable();
  46.     }
  47.     public function getId(): ?int
  48.     {
  49.         return $this->id;
  50.     }
  51.     public function getTitle(): ?string
  52.     {
  53.         return $this->title;
  54.     }
  55.     public function setTitle(string $title): self
  56.     {
  57.         $this->title = $title;
  58.         return $this;
  59.     }
  60.     public function getDescription(): ?string
  61.     {
  62.         return $this->description;
  63.     }
  64.     public function setDescription(?string $description): self
  65.     {
  66.         $this->description = $description;
  67.         return $this;
  68.     }
  69.     /**
  70.      * @return Collection<int, ProjetBailleur>
  71.      */
  72.     public function getProjetBailleurs(): Collection
  73.     {
  74.         return $this->projetBailleurs;
  75.     }
  76.     public function addProjetBailleur(ProjetBailleur $projetBailleur): self
  77.     {
  78.         if (!$this->projetBailleurs->contains($projetBailleur)) {
  79.             $this->projetBailleurs->add($projetBailleur);
  80.             $projetBailleur->setModeFinance($this);
  81.         }
  82.         return $this;
  83.     }
  84.     public function removeProjetBailleur(ProjetBailleur $projetBailleur): self
  85.     {
  86.         if ($this->projetBailleurs->removeElement($projetBailleur)) {
  87.             // set the owning side to null (unless already changed)
  88.             if ($projetBailleur->getModeFinance() === $this) {
  89.                 $projetBailleur->setModeFinance(null);
  90.             }
  91.         }
  92.         return $this;
  93.     }
  94.     public function getCreatedBy(): ?User
  95.     {
  96.         return $this->createdBy;
  97.     }
  98.     public function setCreatedBy(?User $createdBy): static
  99.     {
  100.         $this->createdBy = $createdBy;
  101.         return $this;
  102.     }
  103.     /**
  104.      * @return Collection<int, ActiviteBailleur>
  105.      */
  106.     public function getActiviteBailleurs(): Collection
  107.     {
  108.         return $this->activiteBailleurs;
  109.     }
  110.     public function addActiviteBailleur(ActiviteBailleur $activiteBailleur): static
  111.     {
  112.         if (!$this->activiteBailleurs->contains($activiteBailleur)) {
  113.             $this->activiteBailleurs->add($activiteBailleur);
  114.             $activiteBailleur->setModeFinance($this);
  115.         }
  116.         return $this;
  117.     }
  118.     public function removeActiviteBailleur(ActiviteBailleur $activiteBailleur): static
  119.     {
  120.         if ($this->activiteBailleurs->removeElement($activiteBailleur)) {
  121.             // set the owning side to null (unless already changed)
  122.             if ($activiteBailleur->getModeFinance() === $this) {
  123.                 $activiteBailleur->setModeFinance(null);
  124.             }
  125.         }
  126.         return $this;
  127.     }
  128.     public function __tostring(): string
  129.     {
  130.         return $this->title;
  131.     }
  132. }