Browse Source

add missing relations

Olivier Massot 11 tháng trước cách đây
mục cha
commit
d40f403560
63 tập tin đã thay đổi với 1774 bổ sung204 xóa
  1. 6 1
      src/Commands/Doctrine/SchemaValidateCommand.php
  2. 10 10
      src/Entity/Access/Access.php
  3. 14 0
      src/Entity/Access/AccessCommunication.php
  4. 14 0
      src/Entity/Access/AccessNetworkSetting.php
  5. 14 0
      src/Entity/Access/AccessSocial.php
  6. 14 0
      src/Entity/AccessWish/AccessFamilyWish.php
  7. 76 0
      src/Entity/AccessWish/AccessWish.php
  8. 28 0
      src/Entity/AccessWish/DocumentWish.php
  9. 48 0
      src/Entity/AccessWish/EducationStudentWish.php
  10. 0 40
      src/Entity/Billing/AbstractBill.php
  11. 122 4
      src/Entity/Billing/AbstractBillAccounting.php
  12. 0 41
      src/Entity/Billing/AbstractBillCredit.php
  13. 15 0
      src/Entity/Billing/AccessBilling.php
  14. 19 4
      src/Entity/Billing/BergerLevrault.php
  15. 30 0
      src/Entity/Billing/BillPayment.php
  16. 31 0
      src/Entity/Billing/BillingExportSetting.php
  17. 3 3
      src/Entity/Billing/BillingIntangibleExcludeDate.php
  18. 14 0
      src/Entity/Billing/BillingSetting.php
  19. 13 0
      src/Entity/Billing/BillingSettingRent.php
  20. 19 4
      src/Entity/Billing/Ciril.php
  21. 19 4
      src/Entity/Billing/Jvs.php
  22. 3 3
      src/Entity/Billing/PayfipPaymentReturn.php
  23. 19 4
      src/Entity/Billing/Pes.php
  24. 15 0
      src/Entity/Billing/PesSetting.php
  25. 30 0
      src/Entity/Billing/SddBank.php
  26. 44 0
      src/Entity/Billing/SddRegie.php
  27. 46 0
      src/Entity/Booking/AbstractBooking.php
  28. 30 0
      src/Entity/Booking/CalendarSynchro.php
  29. 27 12
      src/Entity/Booking/Course.php
  30. 44 15
      src/Entity/Booking/EducationalProject.php
  31. 29 14
      src/Entity/Booking/Event.php
  32. 40 10
      src/Entity/Booking/Examen.php
  33. 45 0
      src/Entity/Booking/OrganizationHoliday.php
  34. 60 0
      src/Entity/Booking/PersonHoliday.php
  35. 26 0
      src/Entity/Core/AbstractControl.php
  36. 15 0
      src/Entity/Core/AbstractRepair.php
  37. 14 0
      src/Entity/Core/AddressPostal.php
  38. 15 0
      src/Entity/Core/City.php
  39. 15 0
      src/Entity/Core/Department.php
  40. 15 0
      src/Entity/Core/Region.php
  41. 88 0
      src/Entity/Core/Tagg.php
  42. 14 0
      src/Entity/Education/Cycle.php
  43. 15 0
      src/Entity/Education/Education.php
  44. 15 0
      src/Entity/Education/EducationComplement.php
  45. 117 0
      src/Entity/Education/EducationCurriculum.php
  46. 16 0
      src/Entity/Education/EducationStudent.php
  47. 15 0
      src/Entity/Message/AbstractMessage.php
  48. 16 0
      src/Entity/Network/Network.php
  49. 15 0
      src/Entity/Organization/Activity.php
  50. 14 0
      src/Entity/Organization/CotisationByYear.php
  51. 14 0
      src/Entity/Organization/CotisationStaffInfos.php
  52. 16 0
      src/Entity/Organization/OnlineRegistrationDocument.php
  53. 33 0
      src/Entity/Organization/OnlineRegistrationSettings.php
  54. 159 0
      src/Entity/Organization/Organization.php
  55. 3 3
      src/Entity/Place/PlaceControl.php
  56. 4 4
      src/Entity/Place/PlaceRepair.php
  57. 16 0
      src/Entity/Product/AbstractProduct.php
  58. 60 17
      src/Entity/Product/Equipment.php
  59. 3 3
      src/Entity/Product/EquipmentControl.php
  60. 4 4
      src/Entity/Product/EquipmentRepair.php
  61. 33 4
      src/Entity/Product/Intangible.php
  62. 32 0
      src/Entity/Product/IntangibleDiscountDetail.php
  63. 31 0
      src/Entity/Product/IntangiblePriceAndDiscount.php

+ 6 - 1
src/Commands/Doctrine/SchemaValidateCommand.php

@@ -74,7 +74,12 @@ class SchemaValidateCommand extends Command
         }
 
         if ($diff) {
-            $output->writeln(count($diff) . " differences found");
+            $count = 0;
+            foreach ($diff as $entity => $value) {
+                $count += (is_array($value) ? count($value) : 1);
+            }
+
+            $output->writeln($count . " differences found");
         } else {
             $output->writeln("No difference found");
         }

+ 10 - 10
src/Entity/Access/Access.php

@@ -14,8 +14,8 @@ use App\Entity\Billing\AccessFictionalIntangible;
 use App\Entity\Billing\AccessIntangible;
 use App\Entity\Billing\AccessPayer;
 use App\Entity\Billing\AdvancePayment;
-use App\Entity\Billing\AbstractBill;
-use App\Entity\Billing\AbstractBillCredit;
+use App\Entity\Billing\Bill;
+use App\Entity\Billing\BillCredit;
 use App\Entity\Billing\BillLine;
 use App\Entity\Billing\EducationalProjectPayer;
 use App\Entity\Booking\Attendance;
@@ -213,13 +213,13 @@ class Access implements UserInterface, PasswordAuthenticatedUserInterface
     #[ORM\OneToMany(mappedBy: 'educationalProjectPayer', targetEntity: EducationalProjectPayer::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $billingEducationalProjectPayers;
 
-    #[ORM\OneToMany(mappedBy: 'access', targetEntity: AbstractBill::class, orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'access', targetEntity: Bill::class, orphanRemoval: true)]
     private Collection $bills;
 
     #[ORM\OneToMany(mappedBy: 'access', targetEntity: BillLine::class, orphanRemoval: true)]
     private Collection $billLines;
 
-    #[ORM\OneToMany(mappedBy: 'access', targetEntity: AbstractBillCredit::class, orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'access', targetEntity: BillCredit::class, orphanRemoval: true)]
     private Collection $billCredits;
 
     #[ORM\OneToMany(mappedBy: 'silentPartner', targetEntity: EducationalProject::class)]
@@ -1187,14 +1187,14 @@ class Access implements UserInterface, PasswordAuthenticatedUserInterface
     }
 
     /**
-     * @return Collection<int, AbstractBill>
+     * @return Collection<int, Bill>
      */
     public function getBills(): Collection
     {
         return $this->bills;
     }
 
-    public function addBill(AbstractBill $bill): self
+    public function addBill(Bill $bill): self
     {
         if (!$this->bills->contains($bill)) {
             $this->bills[] = $bill;
@@ -1204,7 +1204,7 @@ class Access implements UserInterface, PasswordAuthenticatedUserInterface
         return $this;
     }
 
-    public function removeBill(AbstractBill $bill): self
+    public function removeBill(Bill $bill): self
     {
         if ($this->bills->removeElement($bill)) {
             // set the owning side to null (unless already changed)
@@ -1247,14 +1247,14 @@ class Access implements UserInterface, PasswordAuthenticatedUserInterface
     }
 
     /**
-     * @return Collection<int, AbstractBillCredit>
+     * @return Collection<int, BillCredit>
      */
     public function getBillCredits(): Collection
     {
         return $this->billCredits;
     }
 
-    public function addBillCredit(AbstractBillCredit $billCredit): self
+    public function addBillCredit(BillCredit $billCredit): self
     {
         if (!$this->billCredits->contains($billCredit)) {
             $this->billCredits[] = $billCredit;
@@ -1264,7 +1264,7 @@ class Access implements UserInterface, PasswordAuthenticatedUserInterface
         return $this;
     }
 
-    public function removeBillCredit(AbstractBillCredit $billCredit): self
+    public function removeBillCredit(BillCredit $billCredit): self
     {
         if ($this->billCredits->removeElement($billCredit)) {
             // set the owning side to null (unless already changed)

+ 14 - 0
src/Entity/Access/AccessCommunication.php

@@ -19,8 +19,22 @@ class AccessCommunication
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(inversedBy: 'accessCommunication', targetEntity: Access::class, cascade: ['persist'])]
+    protected Access $access;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getAccess(): Access
+    {
+        return $this->access;
+    }
+
+    function setAccess(Access $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Access/AccessNetworkSetting.php

@@ -19,8 +19,22 @@ class AccessNetworkSetting
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(inversedBy: 'accessNetworkSetting', targetEntity: Access::class, cascade: ['persist'])]
+    protected Access $access;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getAccess(): Access
+    {
+        return $this->access;
+    }
+
+    function setAccess(Access $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Access/AccessSocial.php

@@ -19,8 +19,22 @@ class AccessSocial
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(inversedBy: 'accessSocial', targetEntity: Access::class, cascade: ['persist'])]
+    protected Access $access;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getAccess(): Access
+    {
+        return $this->access;
+    }
+
+    function setAccess(Access $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/AccessWish/AccessFamilyWish.php

@@ -36,6 +36,9 @@ class AccessFamilyWish
     #[ORM\Column]
     private bool $closeRegistration = false;
 
+    #[ORM\OneToMany(mappedBy: 'accessFamilyWish', targetEntity: AccessWish::class, cascade: ['remove'], orphanRemoval: false)]
+    protected Collection $accessWishesGuardians;
+
     public function __construct()
     {
         $this->accessWishes = new ArrayCollection();
@@ -105,4 +108,15 @@ class AccessFamilyWish
     {
         $this->closeRegistration = $closeRegistration;
     }
+
+    function getAccessWishesGuardians(): Collection
+    {
+        return $this->accessWishesGuardians;
+    }
+
+    function setAccessWishesGuardians(Collection $accessWishesGuardians): self
+    {
+        $this->accessWishesGuardians = $accessWishesGuardians;
+        return $this;
+    }
 }

+ 76 - 0
src/Entity/AccessWish/AccessWish.php

@@ -6,11 +6,14 @@ namespace App\Entity\AccessWish;
 
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Access\Access;
+use App\Entity\Billing\BillSchedule;
 use App\Entity\Core\Country;
 use App\Entity\Core\File;
 use App\Entity\Core\Tagg;
+use App\Entity\Education\EducationCurriculumPack;
 use App\Entity\Organization\Organization;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Place\Place;
 use App\Enum\OnlineRegistration\ValidationStateEnum;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
@@ -65,6 +68,24 @@ class AccessWish
     #[ORM\Column(length: 50, enumType: ValidationStateEnum::class)]
     private ValidationStateEnum $validationState;
 
+    #[ORM\ManyToOne(targetEntity: BillSchedule::class, inversedBy: 'accessWishes', cascade: ['persist'])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected BillSchedule $billSchedule;
+
+    #[ORM\OneToOne(mappedBy: 'accessWishRib', targetEntity: DocumentWish::class, cascade: ['persist'])]
+    protected DocumentWish $documentRib;
+
+    #[ORM\OneToOne(mappedBy: 'accessWishSepa', targetEntity: DocumentWish::class, cascade: ['persist'])]
+    protected DocumentWish $documentSepa;
+
+    #[ORM\ManyToOne(targetEntity: EducationCurriculumPack::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected EducationCurriculumPack $wishPack;
+
+    #[ORM\ManyToOne(targetEntity: Place::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Place $favoritePlace;
+
     /**
      * Date de création dde l'entité.
      *
@@ -297,4 +318,59 @@ class AccessWish
     {
         $this->validationState = $validationState;
     }
+
+    function getBillSchedule(): BillSchedule
+    {
+        return $this->billSchedule;
+    }
+
+    function setBillSchedule(BillSchedule $billSchedule): self
+    {
+        $this->billSchedule = $billSchedule;
+        return $this;
+    }
+
+    function getDocumentRib(): DocumentWish
+    {
+        return $this->documentRib;
+    }
+
+    function setDocumentRib(DocumentWish $documentRib): self
+    {
+        $this->documentRib = $documentRib;
+        return $this;
+    }
+
+    function getDocumentSepa(): DocumentWish
+    {
+        return $this->documentSepa;
+    }
+
+    function setDocumentSepa(DocumentWish $documentSepa): self
+    {
+        $this->documentSepa = $documentSepa;
+        return $this;
+    }
+
+    function getWishPack(): EducationCurriculumPack
+    {
+        return $this->wishPack;
+    }
+
+    function setWishPack(EducationCurriculumPack $wishPack): self
+    {
+        $this->wishPack = $wishPack;
+        return $this;
+    }
+
+    function getFavoritePlace(): Place
+    {
+        return $this->favoritePlace;
+    }
+
+    function setFavoritePlace(Place $favoritePlace): self
+    {
+        $this->favoritePlace = $favoritePlace;
+        return $this;
+    }
 }

+ 28 - 0
src/Entity/AccessWish/DocumentWish.php

@@ -34,6 +34,12 @@ class DocumentWish
     #[ORM\OneToMany(mappedBy: 'documentWish', targetEntity: File::class, orphanRemoval: true)]
     private Collection $files;
 
+    #[ORM\OneToOne(inversedBy: 'documentRib', targetEntity: AccessWish::class, cascade: [])]
+    protected AccessWish $accessWishRib;
+
+    #[ORM\OneToOne(inversedBy: 'documentSepa', targetEntity: AccessWish::class, cascade: [])]
+    protected AccessWish $accessWishSepa;
+
     public function __construct()
     {
         $this->files = new ArrayCollection();
@@ -97,4 +103,26 @@ class DocumentWish
 
         return $this;
     }
+
+    function getAccessWishRib(): AccessWish
+    {
+        return $this->accessWishRib;
+    }
+
+    function setAccessWishRib(AccessWish $accessWishRib): self
+    {
+        $this->accessWishRib = $accessWishRib;
+        return $this;
+    }
+
+    function getAccessWishSepa(): AccessWish
+    {
+        return $this->accessWishSepa;
+    }
+
+    function setAccessWishSepa(AccessWish $accessWishSepa): self
+    {
+        $this->accessWishSepa = $accessWishSepa;
+        return $this;
+    }
 }

+ 48 - 0
src/Entity/AccessWish/EducationStudentWish.php

@@ -4,13 +4,17 @@ declare(strict_types=1);
 
 namespace App\Entity\AccessWish;
 
+use App\Entity\Access\Access;
+use App\Entity\Booking\Course;
 use App\Entity\Education\Education;
 use App\Entity\Education\EducationCurriculum;
 use App\Entity\Education\EducationStudent;
 use App\Entity\Education\EducationTiming;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\EquipmentList;
 use App\Enum\OnlineRegistration\RegistrationStatusEnum;
 use App\Enum\OnlineRegistration\WishRegistrationEnum;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -53,6 +57,17 @@ class EducationStudentWish
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
     private EducationTiming $educationTiming;
 
+    #[ORM\ManyToMany(targetEntity: Access::class, cascade: [], orphanRemoval: false)]
+    protected Collection $teachers;
+
+    #[ORM\ManyToOne(targetEntity: EquipmentList::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected EquipmentList $speciality;
+
+    #[ORM\ManyToOne(targetEntity: Course::class, cascade: [], inversedBy: 'educationStudentWishes')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Course $course;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -149,4 +164,37 @@ class EducationStudentWish
 
         return $this;
     }
+
+    function getTeachers(): Collection
+    {
+        return $this->teachers;
+    }
+
+    function setTeachers(Collection $teachers): self
+    {
+        $this->teachers = $teachers;
+        return $this;
+    }
+
+    function getSpeciality(): EquipmentList
+    {
+        return $this->speciality;
+    }
+
+    function setSpeciality(EquipmentList $speciality): self
+    {
+        $this->speciality = $speciality;
+        return $this;
+    }
+
+    function getCourse(): Course
+    {
+        return $this->course;
+    }
+
+    function setCourse(Course $course): self
+    {
+        $this->course = $course;
+        return $this;
+    }
 }

+ 0 - 40
src/Entity/Billing/AbstractBill.php

@@ -1,40 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Entity\Billing;
-
-use ApiPlatform\Metadata\ApiResource;
-use App\Entity\Access\Access;
-// use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
-use Doctrine\ORM\Mapping as ORM;
-
-/**
- * @todo : A la suite de la migration, il faut supprimer le nom de la table pour avoir une table Bill, et supprimer l'attribut discr.
- * Classe ... qui ...
- */
-#[ApiResource(operations: [])]
-// #[Auditable]
-#[ORM\Entity]
-#[ORM\Table(name: 'BillAccounting')]
-class AbstractBill extends AbstractBillAccounting implements BillAccountingInterface
-{
-    #[ORM\Column(length: 255, nullable: false)]
-    protected string $discr = 'bill';
-
-    #[ORM\ManyToOne(inversedBy: 'bills')]
-    #[ORM\JoinColumn(nullable: false)]
-    public ?Access $access;
-
-    public function getAccess(): ?Access
-    {
-        return $this->access;
-    }
-
-    public function setAccess(?Access $access): self
-    {
-        $this->access = $access;
-
-        return $this;
-    }
-}

+ 122 - 4
src/Entity/Billing/AbstractBillAccounting.php

@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace App\Entity\Billing;
 
+use App\Entity\Access\Access;
+use App\Entity\Core\File;
 use App\Entity\Core\Tagg;
 use App\Entity\Organization\Organization;
 use Doctrine\Common\Collections\ArrayCollection;
@@ -35,7 +37,7 @@ abstract class AbstractBillAccounting
     #[ORM\OneToMany(mappedBy: 'bill', targetEntity: BillLine::class, cascade: ['persist'], orphanRemoval: true)]
     protected Collection $billLines;
 
-    #[ORM\OneToMany(mappedBy: 'bill', targetEntity: AbstractBillCredit::class, cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'bill', targetEntity: BillCredit::class, cascade: ['persist'], orphanRemoval: true)]
     protected Collection $billCredits;
 
     #[ORM\OneToMany(mappedBy: 'bill', targetEntity: BillPayment::class, cascade: ['persist'], orphanRemoval: true)]
@@ -70,6 +72,34 @@ abstract class AbstractBillAccounting
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
     protected Collection $tags;
 
+    #[ORM\ManyToOne(targetEntity: Access::class, cascade: [], inversedBy: 'bills')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Access $access;
+
+    #[ORM\OneToOne(targetEntity: BillAccessDetail::class, cascade: ['persist'])]
+    protected BillAccessDetail $accessDetail;
+
+    #[ORM\OneToOne(targetEntity: BillPeriod::class, cascade: ['persist'])]
+    protected BillPeriod $billPeriod;
+
+    #[ORM\OneToOne(targetEntity: BillTotalDetail::class, cascade: ['persist'])]
+    protected BillTotalDetail $totalDetail;
+
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
+    #[ORM\ManyToOne(targetEntity: Odyssee::class, inversedBy: 'bills', cascade: ['persist'])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Odyssee $odyssee;
+
+    #[ORM\ManyToOne(targetEntity: Afi::class, inversedBy: 'bills', cascade: ['persist'])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Afi $afi;
+
+    #[ORM\ManyToOne(targetEntity: CirilCivil::class, inversedBy: 'bills', cascade: ['persist'])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected CirilCivil $cirilCivil;
+
     public function __construct()
     {
         $this->billLines = new ArrayCollection();
@@ -139,14 +169,14 @@ abstract class AbstractBillAccounting
     }
 
     /**
-     * @return Collection<int, AbstractBillCredit>
+     * @return Collection<int, BillCredit>
      */
     public function getBillCredits(): Collection
     {
         return $this->billCredits;
     }
 
-    public function addBillCredit(AbstractBillCredit $billCredit): self
+    public function addBillCredit(BillCredit $billCredit): self
     {
         if (!$this->billCredits->contains($billCredit)) {
             $this->billCredits[] = $billCredit;
@@ -156,7 +186,7 @@ abstract class AbstractBillAccounting
         return $this;
     }
 
-    public function removeBillCredit(AbstractBillCredit $billCredit): self
+    public function removeBillCredit(BillCredit $billCredit): self
     {
         if ($this->billCredits->removeElement($billCredit)) {
             // set the owning side to null (unless already changed)
@@ -312,4 +342,92 @@ abstract class AbstractBillAccounting
 
         return $this;
     }
+
+    function getAccess(): Access
+    {
+        return $this->access;
+    }
+
+    function setAccess(Access $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
+
+    function getAccessDetail(): BillAccessDetail
+    {
+        return $this->accessDetail;
+    }
+
+    function setAccessDetail(BillAccessDetail $accessDetail): self
+    {
+        $this->accessDetail = $accessDetail;
+        return $this;
+    }
+
+    function getBillPeriod(): BillPeriod
+    {
+        return $this->billPeriod;
+    }
+
+    function setBillPeriod(BillPeriod $billPeriod): self
+    {
+        $this->billPeriod = $billPeriod;
+        return $this;
+    }
+
+    function getTotalDetail(): BillTotalDetail
+    {
+        return $this->totalDetail;
+    }
+
+    function setTotalDetail(BillTotalDetail $totalDetail): self
+    {
+        $this->totalDetail = $totalDetail;
+        return $this;
+    }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
+
+    function getOdyssee(): Odyssee
+    {
+        return $this->odyssee;
+    }
+
+    function setOdyssee(Odyssee $odyssee): self
+    {
+        $this->odyssee = $odyssee;
+        return $this;
+    }
+
+    function getAfi(): Afi
+    {
+        return $this->afi;
+    }
+
+    function setAfi(Afi $afi): self
+    {
+        $this->afi = $afi;
+        return $this;
+    }
+
+    function getCirilCivil(): CirilCivil
+    {
+        return $this->cirilCivil;
+    }
+
+    function setCirilCivil(CirilCivil $cirilCivil): self
+    {
+        $this->cirilCivil = $cirilCivil;
+        return $this;
+    }
 }

+ 0 - 41
src/Entity/Billing/AbstractBillCredit.php

@@ -1,41 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Entity\Billing;
-
-use ApiPlatform\Metadata\ApiResource;
-use App\Entity\Access\Access;
-// use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
-use Doctrine\ORM\Mapping as ORM;
-
-/**
- * @todo : A la suite de la migration, il faut supprimer le nom de la table pour avoir une table BillCredit, et supprimer l'attribut discr.
- *
- * Classe ... qui ...
- */
-#[ApiResource(operations: [])]
-// #[Auditable]
-#[ORM\Entity]
-#[ORM\Table(name: 'BillAccounting')]
-class AbstractBillCredit extends AbstractBillAccounting implements BillAccountingInterface
-{
-    #[ORM\Column(length: 255, nullable: false)]
-    protected string $discr = 'billcredit';
-
-    #[ORM\ManyToOne(inversedBy: 'billCredits')]
-    #[ORM\JoinColumn(nullable: false)]
-    protected Access $access;
-
-    public function getAccess(): ?Access
-    {
-        return $this->access;
-    }
-
-    public function setAccess(?Access $access): self
-    {
-        $this->access = $access;
-
-        return $this;
-    }
-}

+ 15 - 0
src/Entity/Billing/AccessBilling.php

@@ -45,6 +45,10 @@ class AccessBilling
     #[ORM\OneToMany(mappedBy: 'accessBillingAccountBalanceReimbursement', targetEntity: BillPayment::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $accountBalanceReimbursements;
 
+    #[ORM\ManyToOne(targetEntity: BillSchedule::class, inversedBy: 'accessBilling', cascade: ['persist'])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected BillSchedule $billSchedule;
+
     public function __construct()
     {
         $this->billDetachedPayments = new ArrayCollection();
@@ -182,4 +186,15 @@ class AccessBilling
 
         return $this;
     }
+
+    function getBillSchedule(): BillSchedule
+    {
+        return $this->billSchedule;
+    }
+
+    function setBillSchedule(BillSchedule $billSchedule): self
+    {
+        $this->billSchedule = $billSchedule;
+        return $this;
+    }
 }

+ 19 - 4
src/Entity/Billing/BergerLevrault.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -21,9 +22,12 @@ class BergerLevrault
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
-    #[ORM\OneToMany(mappedBy: 'bergerLevrault', targetEntity: AbstractBill::class, cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'bergerLevrault', targetEntity: Bill::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $bills;
 
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function __construct()
     {
         $this->bills = new ArrayCollection();
@@ -35,14 +39,14 @@ class BergerLevrault
     }
 
     /**
-     * @return Collection<int, AbstractBill>
+     * @return Collection<int, Bill>
      */
     public function getBills(): Collection
     {
         return $this->bills;
     }
 
-    public function addBill(AbstractBill $bill): self
+    public function addBill(Bill $bill): self
     {
         if (!$this->bills->contains($bill)) {
             $this->bills[] = $bill;
@@ -52,7 +56,7 @@ class BergerLevrault
         return $this;
     }
 
-    public function removeBill(AbstractBill $bill): self
+    public function removeBill(Bill $bill): self
     {
         if ($this->bills->removeElement($bill)) {
             // set the owning side to null (unless already changed)
@@ -63,4 +67,15 @@ class BergerLevrault
 
         return $this;
     }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 30 - 0
src/Entity/Billing/BillPayment.php

@@ -44,6 +44,14 @@ class BillPayment
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
     private Collection $tags;
 
+    #[ORM\ManyToOne(targetEntity: SddBank::class, cascade: ['persist'], inversedBy: 'billPayments')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected SddBank $sddBank;
+
+    #[ORM\ManyToOne(targetEntity: SddRegie::class, cascade: ['persist'], inversedBy: 'billPayments')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected SddRegie $sddRegie;
+
     public function __construct()
     {
         $this->billDebitBalances = new ArrayCollection();
@@ -144,4 +152,26 @@ class BillPayment
 
         return $this;
     }
+
+    function getSddBank(): SddBank
+    {
+        return $this->sddBank;
+    }
+
+    function setSddBank(SddBank $sddBank): self
+    {
+        $this->sddBank = $sddBank;
+        return $this;
+    }
+
+    function getSddRegie(): SddRegie
+    {
+        return $this->sddRegie;
+    }
+
+    function setSddRegie(SddRegie $sddRegie): self
+    {
+        $this->sddRegie = $sddRegie;
+        return $this;
+    }
 }

+ 31 - 0
src/Entity/Billing/BillingExportSetting.php

@@ -5,6 +5,9 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Access\Access;
+use App\Entity\Organization\Organization;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -23,6 +26,12 @@ class BillingExportSetting
     #[ORM\JoinColumn(nullable: true)]
     private SddTeneur $teneur;
 
+    #[ORM\OneToOne(inversedBy: 'billingExportSetting', targetEntity: Organization::class, cascade: [])]
+    protected Organization $organization;
+
+    #[ORM\ManyToMany(targetEntity: Access::class, cascade: [], orphanRemoval: false)]
+    protected Collection $stageManagers;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -39,4 +48,26 @@ class BillingExportSetting
 
         return $this;
     }
+
+    function getOrganization(): Organization
+    {
+        return $this->organization;
+    }
+
+    function setOrganization(Organization $organization): self
+    {
+        $this->organization = $organization;
+        return $this;
+    }
+
+    function getStageManagers(): Collection
+    {
+        return $this->stageManagers;
+    }
+
+    function setStageManagers(Collection $stageManagers): self
+    {
+        $this->stageManagers = $stageManagers;
+        return $this;
+    }
 }

+ 3 - 3
src/Entity/Billing/BillingIntangibleExcludeDate.php

@@ -35,7 +35,7 @@ class BillingIntangibleExcludeDate
     private EquipmentLoan $equipmentLoan;
 
     #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'billingIntangibleExcludeDates')]
-    private AbstractBill $bill;
+    private Bill $bill;
 
     public function getId(): ?int
     {
@@ -90,12 +90,12 @@ class BillingIntangibleExcludeDate
         return $this;
     }
 
-    public function getBill(): ?AbstractBill
+    public function getBill(): ?Bill
     {
         return $this->bill;
     }
 
-    public function setBill(?AbstractBill $bill): self
+    public function setBill(?Bill $bill): self
     {
         $this->bill = $bill;
 

+ 14 - 0
src/Entity/Billing/BillingSetting.php

@@ -36,6 +36,9 @@ class BillingSetting
     #[ORM\OneToMany(mappedBy: 'billingSetting', targetEntity: FamilyQuotient::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $familyQuotients;
 
+    #[ORM\OneToOne(mappedBy: 'billingSetting', targetEntity: BillingSettingRent::class, cascade: ['persist'])]
+    protected BillingSettingRent $billingSettingRent;
+
     #[Pure]
     public function __construct()
     {
@@ -128,4 +131,15 @@ class BillingSetting
 
         return $this;
     }
+
+    function getBillingSettingRent(): BillingSettingRent
+    {
+        return $this->billingSettingRent;
+    }
+
+    function setBillingSettingRent(BillingSettingRent $billingSettingRent): self
+    {
+        $this->billingSettingRent = $billingSettingRent;
+        return $this;
+    }
 }

+ 13 - 0
src/Entity/Billing/BillingSettingRent.php

@@ -19,6 +19,19 @@ class BillingSettingRent
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(inversedBy: 'billingSettingRent', targetEntity: BillingSetting::class, cascade: [])]
+    protected BillingSetting $billingSetting;
+
+    function getBillingSetting(): BillingSetting
+    {
+        return $this->billingSetting;
+    }
+
+    function setBillingSetting(BillingSetting $billingSetting): self
+    {
+        $this->billingSetting = $billingSetting;
+        return $this;
+    }
     public function getId(): ?int
     {
         return $this->id;

+ 19 - 4
src/Entity/Billing/Ciril.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -21,9 +22,12 @@ class Ciril
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
-    #[ORM\OneToMany(mappedBy: 'ciril', targetEntity: AbstractBill::class, cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'ciril', targetEntity: Bill::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $bills;
 
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function __construct()
     {
         $this->bills = new ArrayCollection();
@@ -35,14 +39,14 @@ class Ciril
     }
 
     /**
-     * @return Collection<int, AbstractBill>
+     * @return Collection<int, Bill>
      */
     public function getBills(): Collection
     {
         return $this->bills;
     }
 
-    public function addBill(AbstractBill $bill): self
+    public function addBill(Bill $bill): self
     {
         if (!$this->bills->contains($bill)) {
             $this->bills[] = $bill;
@@ -52,7 +56,7 @@ class Ciril
         return $this;
     }
 
-    public function removeBill(AbstractBill $bill): self
+    public function removeBill(Bill $bill): self
     {
         if ($this->bills->removeElement($bill)) {
             // set the owning side to null (unless already changed)
@@ -63,4 +67,15 @@ class Ciril
 
         return $this;
     }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 19 - 4
src/Entity/Billing/Jvs.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -21,9 +22,12 @@ class Jvs
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
-    #[ORM\OneToMany(mappedBy: 'jvs', targetEntity: AbstractBill::class, cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'jvs', targetEntity: Bill::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $bills;
 
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function __construct()
     {
         $this->bills = new ArrayCollection();
@@ -35,14 +39,14 @@ class Jvs
     }
 
     /**
-     * @return Collection<int, AbstractBill>
+     * @return Collection<int, Bill>
      */
     public function getBills(): Collection
     {
         return $this->bills;
     }
 
-    public function addBill(AbstractBill $bill): self
+    public function addBill(Bill $bill): self
     {
         if (!$this->bills->contains($bill)) {
             $this->bills[] = $bill;
@@ -52,7 +56,7 @@ class Jvs
         return $this;
     }
 
-    public function removeBill(AbstractBill $bill): self
+    public function removeBill(Bill $bill): self
     {
         if ($this->bills->removeElement($bill)) {
             // set the owning side to null (unless already changed)
@@ -63,4 +67,15 @@ class Jvs
 
         return $this;
     }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 3 - 3
src/Entity/Billing/PayfipPaymentReturn.php

@@ -21,19 +21,19 @@ class PayfipPaymentReturn
 
     #[ORM\ManyToOne(cascade: ['persist'])]
     #[ORM\JoinColumn(nullable: false)]
-    private AbstractBill $bill;
+    private Bill $bill;
 
     public function getId(): ?int
     {
         return $this->id;
     }
 
-    public function getBill(): ?AbstractBill
+    public function getBill(): ?Bill
     {
         return $this->bill;
     }
 
-    public function setBill(?AbstractBill $bill): self
+    public function setBill(?Bill $bill): self
     {
         $this->bill = $bill;
 

+ 19 - 4
src/Entity/Billing/Pes.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -21,9 +22,12 @@ class Pes
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
-    #[ORM\OneToMany(mappedBy: 'pes', targetEntity: AbstractBill::class, cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(mappedBy: 'pes', targetEntity: Bill::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $bills;
 
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function __construct()
     {
         $this->bills = new ArrayCollection();
@@ -35,14 +39,14 @@ class Pes
     }
 
     /**
-     * @return Collection<int, AbstractBill>
+     * @return Collection<int, Bill>
      */
     public function getBills(): Collection
     {
         return $this->bills;
     }
 
-    public function addBill(AbstractBill $bill): self
+    public function addBill(Bill $bill): self
     {
         if (!$this->bills->contains($bill)) {
             $this->bills[] = $bill;
@@ -52,7 +56,7 @@ class Pes
         return $this;
     }
 
-    public function removeBill(AbstractBill $bill): self
+    public function removeBill(Bill $bill): self
     {
         if ($this->bills->removeElement($bill)) {
             // set the owning side to null (unless already changed)
@@ -63,4 +67,15 @@ class Pes
 
         return $this;
     }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Billing/PesSetting.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Organization\Organization;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -19,8 +20,22 @@ class PesSetting
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(targetEntity: Organization::class, inversedBy: 'pesSetting', cascade: [])]
+    protected Organization $organization;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getOrganization(): Organization
+    {
+        return $this->organization;
+    }
+
+    function setOrganization(Organization $organization): self
+    {
+        $this->organization = $organization;
+        return $this;
+    }
 }

+ 30 - 0
src/Entity/Billing/SddBank.php

@@ -5,6 +5,8 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -19,6 +21,12 @@ class SddBank
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToMany(mappedBy: 'sddBank', targetEntity: BillPayment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $billPayments;
+
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function __construct()
     {
     }
@@ -27,4 +35,26 @@ class SddBank
     {
         return $this->id;
     }
+
+    function getBillPayments(): Collection
+    {
+        return $this->billPayments;
+    }
+
+    function setBillPayments(Collection $billPayments): self
+    {
+        $this->billPayments = $billPayments;
+        return $this;
+    }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 44 - 0
src/Entity/Billing/SddRegie.php

@@ -5,6 +5,8 @@ declare(strict_types=1);
 namespace App\Entity\Billing;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\File;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -19,6 +21,15 @@ class SddRegie
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToMany(mappedBy: 'sddRegie', targetEntity: BillPayment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $billPayments;
+
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
+    #[ORM\OneToOne(targetEntity: File::class, cascade: ['persist'])]
+    protected File $bordereau;
+
     public function __construct()
     {
     }
@@ -27,4 +38,37 @@ class SddRegie
     {
         return $this->id;
     }
+
+    function getBillPayments(): Collection
+    {
+        return $this->billPayments;
+    }
+
+    function setBillPayments(Collection $billPayments): self
+    {
+        $this->billPayments = $billPayments;
+        return $this;
+    }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
+
+    function getBordereau(): File
+    {
+        return $this->bordereau;
+    }
+
+    function setBordereau(File $bordereau): self
+    {
+        $this->bordereau = $bordereau;
+        return $this;
+    }
 }

+ 46 - 0
src/Entity/Booking/AbstractBooking.php

@@ -6,8 +6,12 @@ namespace App\Entity\Booking;
 
 use App\Attribute\ActivityYearConstraintAware;
 use App\Attribute\OrganizationDefaultValue;
+use App\Entity\Access\Access;
+use App\Entity\Core\Tagg;
+use App\Entity\Product\Equipment;
 use App\Entity\Traits\ActivityYearTrait;
 use App\Enum\Booking\VisibilityEnum;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -40,6 +44,15 @@ abstract class AbstractBooking
     #[ORM\Column(unique: true)]
     protected string $uuid;
 
+    #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'practicalCourses', cascade: [], orphanRemoval: false)]
+    protected Collection $organizer;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
+
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'bookings', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -104,4 +117,37 @@ abstract class AbstractBooking
 
         return $this;
     }
+
+    function getOrganizer(): Collection
+    {
+        return $this->organizer;
+    }
+
+    function setOrganizer(Collection $organizer): self
+    {
+        $this->organizer = $organizer;
+        return $this;
+    }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
 }

+ 30 - 0
src/Entity/Booking/CalendarSynchro.php

@@ -5,6 +5,8 @@ declare(strict_types=1);
 namespace App\Entity\Booking;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Access\Access;
+use App\Entity\Core\File;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -19,8 +21,36 @@ class CalendarSynchro
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(inversedBy: 'calendarSynchro', targetEntity: Access::class, cascade: ['persist'])]
+    protected Access $access;
+
+    #[ORM\OneToOne(inversedBy: 'calendarSynchro', targetEntity: File::class, cascade: ['persist'])]
+    protected File $file;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getAccess(): Access
+    {
+        return $this->access;
+    }
+
+    function setAccess(Access $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
+
+    function getFile(): File
+    {
+        return $this->file;
+    }
+
+    function setFile(File $file): self
+    {
+        $this->file = $file;
+        return $this;
+    }
 }

+ 27 - 12
src/Entity/Booking/Course.php

@@ -6,6 +6,7 @@ namespace App\Entity\Booking;
 
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Access\Access;
+use App\Entity\AccessWish\EducationStudentWish;
 use App\Entity\Core\Tagg;
 use App\Entity\Education\Education;
 use App\Entity\Education\EducationCurriculum;
@@ -36,16 +37,16 @@ use Doctrine\ORM\Mapping as ORM;
 class Course extends AbstractBooking
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'course';
+    protected string $discr = 'course';
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: CourseRecur::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $eventRecur;
+    protected Collection $eventRecur;
 
     #[ORM\OneToMany(mappedBy: 'parent', targetEntity: Course::class, orphanRemoval: true)]
-    private Collection $timeline;
+    protected Collection $timeline;
 
     #[ORM\ManyToOne(inversedBy: 'timeline')]
-    private Course $parent;
+    protected Course $parent;
 
     #[ORM\ManyToOne(inversedBy: 'courses')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
@@ -59,7 +60,7 @@ class Course extends AbstractBooking
     #[ORM\JoinTable(name: 'booking_organizer')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'organizer_id', referencedColumnName: 'id')]
-    private Collection $organizer;
+    protected Collection $organizer;
 
     #[ORM\ManyToOne(inversedBy: 'courses')]
     #[ORM\JoinColumn(nullable: false)]
@@ -67,35 +68,38 @@ class Course extends AbstractBooking
 
     #[ORM\ManyToOne(inversedBy: 'courses')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Education $education;
+    protected Education $education;
 
     #[ORM\ManyToMany(targetEntity: EducationCurriculum::class)]
-    private Collection $educationCurriculum;
+    protected Collection $educationCurriculum;
 
     #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'courses')]
     #[ORM\JoinTable(name: 'course_student')]
     #[ORM\JoinColumn(name: 'course_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'student_id', referencedColumnName: 'id')]
-    private Collection $students;
+    protected Collection $students;
 
     #[ORM\OneToMany(mappedBy: 'course', targetEntity: Work::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $work;
+    protected Collection $work;
 
     #[ORM\ManyToMany(targetEntity: Equipment::class)]
     #[ORM\JoinTable(name: 'booking_equipment')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'equipment_id', referencedColumnName: 'id')]
-    private Collection $equipments;
+    protected Collection $equipments;
 
     #[ORM\OneToMany(mappedBy: 'course', targetEntity: AttendanceBooking::class, cascade: ['persist'], orphanRemoval: true)]
     #[ORM\JoinColumn(nullable: false)]
-    private Collection $attendanceBooking;
+    protected Collection $attendanceBooking;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'courses', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_booking')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\OneToMany(mappedBy: 'course', targetEntity: EducationStudentWish::class, cascade: [], orphanRemoval: false)]
+    protected Collection $educationStudentWishes;
 
     public function __construct()
     {
@@ -421,4 +425,15 @@ class Course extends AbstractBooking
 
         return $this;
     }
+
+    function getEducationStudentWishes(): Collection
+    {
+        return $this->educationStudentWishes;
+    }
+
+    function setEducationStudentWishes(Collection $educationStudentWishes): self
+    {
+        $this->educationStudentWishes = $educationStudentWishes;
+        return $this;
+    }
 }

+ 44 - 15
src/Entity/Booking/EducationalProject.php

@@ -15,6 +15,7 @@ use App\Entity\Organization\Organization;
 use App\Entity\Place\AbstractPlace;
 use App\Entity\Place\Room;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\Equipment;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -31,16 +32,16 @@ use Doctrine\ORM\Mapping as ORM;
 class EducationalProject extends AbstractBooking
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'educationalproject';
+    protected string $discr = 'educationalproject';
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: EducationalProjectRecur::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $eventRecur;
+    protected Collection $eventRecur;
 
     #[ORM\OneToMany(mappedBy: 'parent', targetEntity: EducationalProject::class, orphanRemoval: true)]
-    private Collection $timeline;
+    protected Collection $timeline;
 
     #[ORM\ManyToOne(inversedBy: 'timeline')]
-    private EducationalProject $parent;
+    protected EducationalProject $parent;
 
     #[ORM\ManyToOne(inversedBy: 'educationalProjects')]
     #[ORM\JoinColumn(nullable: false)]
@@ -48,35 +49,35 @@ class EducationalProject extends AbstractBooking
 
     #[ORM\ManyToOne(inversedBy: 'silentPartners')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $silentPartner;
+    protected Access $silentPartner;
 
     #[ORM\ManyToOne(inversedBy: 'educationalProjects')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private EducationalProjectPublic $public;
+    protected EducationalProjectPublic $public;
 
     #[ORM\ManyToOne(inversedBy: 'operationalPartners')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $operationalPartner;
+    protected Access $operationalPartner;
 
     #[ORM\ManyToMany(targetEntity: Access::class)]
     #[ORM\JoinTable(name: 'educationalproject_financier')]
-    private Collection $financiers;
+    protected Collection $financiers;
 
     #[ORM\ManyToMany(targetEntity: File::class)]
-    private Collection $files;
+    protected Collection $files;
 
     #[ORM\OneToMany(mappedBy: 'educationalProject', targetEntity: EducationalProjectIntangible::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $educationalProjectIntangibles;
+    protected Collection $educationalProjectIntangibles;
 
     #[ORM\OneToMany(mappedBy: 'educationalProjectReceiver', targetEntity: EducationalProjectPayer::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $billingReceivers;
+    protected Collection $billingReceivers;
 
     #[ORM\OneToMany(mappedBy: 'educationalProject', targetEntity: BillLine::class, orphanRemoval: true)]
-    private Collection $billLines;
+    protected Collection $billLines;
 
     #[ORM\OneToMany(mappedBy: 'educationalProject', targetEntity: AttendanceBooking::class, cascade: ['persist'], orphanRemoval: true)]
     #[ORM\JoinColumn(nullable: false)]
-    private Collection $attendanceBooking;
+    protected Collection $attendanceBooking;
 
     #[ORM\ManyToOne(inversedBy: 'educationalProjects')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
@@ -90,13 +91,19 @@ class EducationalProject extends AbstractBooking
     #[ORM\JoinTable(name: 'booking_organizer')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'organizer_id', referencedColumnName: 'id')]
-    private Collection $organizer;
+    protected Collection $organizer;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'educationalProjects', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_booking')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
+
+    #[ORM\OneToOne(targetEntity: EducationalProjectAge::class, cascade: ['persist'])]
+    protected EducationalProjectAge $ageDistribution;
 
     public function __construct()
     {
@@ -483,4 +490,26 @@ class EducationalProject extends AbstractBooking
 
         return $this;
     }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
+
+    function getAgeDistribution(): EducationalProjectAge
+    {
+        return $this->ageDistribution;
+    }
+
+    function setAgeDistribution(EducationalProjectAge $ageDistribution): self
+    {
+        $this->ageDistribution = $ageDistribution;
+        return $this;
+    }
 }

+ 29 - 14
src/Entity/Booking/Event.php

@@ -14,6 +14,7 @@ use App\Entity\Place\AbstractPlace;
 use App\Entity\Place\PlaceSystem;
 use App\Entity\Place\Room;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\Equipment;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -30,7 +31,7 @@ use Symfony\Component\Validator\Constraints as Assert;
 class Event extends AbstractBooking
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'event';
+    protected string $discr = 'event';
 
     #[ORM\ManyToOne(inversedBy: 'events')]
     #[ORM\JoinColumn(nullable: false)]
@@ -45,57 +46,60 @@ class Event extends AbstractBooking
     protected Room $room;
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: EventRecur::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $eventRecur;
+    protected Collection $eventRecur;
 
     #[ORM\OneToMany(mappedBy: 'parent', targetEntity: Event::class, orphanRemoval: true)]
-    private Collection $timeline;
+    protected Collection $timeline;
 
     #[ORM\ManyToOne(inversedBy: 'timeline')]
-    private Event $parent;
+    protected Event $parent;
 
     #[Assert\Valid]
     #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'events')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private File $image;
+    protected File $image;
 
     #[ORM\ManyToOne]
-    private EventGender $gender;
+    protected EventGender $gender;
 
     #[Assert\Valid]
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: EventUser::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $eventUser;
+    protected Collection $eventUser;
 
     #[ORM\ManyToMany(targetEntity: Categories::class, cascade: ['persist'])]
-    private Collection $categories;
+    protected Collection $categories;
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: EventReport::class, orphanRemoval: true)]
-    private Collection $eventReports;
+    protected Collection $eventReports;
 
     #[ORM\ManyToMany(targetEntity: File::class, cascade: ['persist'], orphanRemoval: true)]
     #[ORM\JoinTable(name: 'event_files')]
     #[ORM\JoinColumn(name: 'event_id', referencedColumnName: 'id', onDelete: 'cascade')]
     #[ORM\InverseJoinColumn(name: 'file_id', referencedColumnName: 'id', onDelete: 'cascade')]
-    private Collection $files;
+    protected Collection $files;
 
     #[ORM\ManyToOne]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private PlaceSystem $placeSystem;
+    protected PlaceSystem $placeSystem;
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: AttendanceBooking::class, cascade: ['persist'], orphanRemoval: true)]
     #[ORM\JoinColumn(nullable: false)]
-    private Collection $attendanceBooking;
+    protected Collection $attendanceBooking;
 
     #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'eventOrganizers')]
     #[ORM\JoinTable(name: 'booking_organizer')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'organizer_id', referencedColumnName: 'id')]
-    private Collection $organizer;
+    protected Collection $organizer;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'events', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_booking')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
 
     public function __construct()
     {
@@ -451,4 +455,15 @@ class Event extends AbstractBooking
 
         return $this;
     }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
 }

+ 40 - 10
src/Entity/Booking/Examen.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Booking;
 
 use ApiPlatform\Metadata\ApiResource;
+use App\Entity\Access\Access;
 use App\Entity\Core\Tagg;
 use App\Entity\Education\Education;
 use App\Entity\Education\EducationCurriculum;
@@ -13,6 +14,7 @@ use App\Entity\Organization\Organization;
 use App\Entity\Place\AbstractPlace;
 use App\Entity\Place\Room;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\Equipment;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -29,38 +31,38 @@ use Doctrine\ORM\Mapping as ORM;
 class Examen extends AbstractBooking
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'examen';
+    protected string $discr = 'examen';
 
     #[ORM\ManyToOne(inversedBy: 'examens')]
     #[ORM\JoinColumn(nullable: false)]
     protected Organization $organization;
 
     #[ORM\OneToMany(mappedBy: 'event', targetEntity: ExamenRecur::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $eventRecur;
+    protected Collection $eventRecur;
 
     #[ORM\OneToMany(mappedBy: 'parent', targetEntity: Examen::class, orphanRemoval: true)]
-    private Collection $timeline;
+    protected Collection $timeline;
 
     #[ORM\ManyToOne(inversedBy: 'timeline')]
-    private Examen $parent;
+    protected Examen $parent;
 
     #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'examens')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Jury $jury;
+    protected Jury $jury;
 
     #[ORM\ManyToOne(inversedBy: 'examens')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Education $education;
+    protected Education $education;
 
     #[ORM\ManyToMany(targetEntity: EducationCurriculum::class)]
-    private Collection $educationCurriculum;
+    protected Collection $educationCurriculum;
 
     #[ORM\OneToMany(mappedBy: 'examen', targetEntity: ExamenConvocation::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $convocation;
+    protected Collection $convocation;
 
     #[ORM\OneToMany(mappedBy: 'examen', targetEntity: AttendanceBooking::class, cascade: ['persist'], orphanRemoval: true)]
     #[ORM\JoinColumn(nullable: false)]
-    private Collection $attendanceBooking;
+    protected Collection $attendanceBooking;
 
     #[ORM\ManyToOne(inversedBy: 'examens')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
@@ -74,7 +76,13 @@ class Examen extends AbstractBooking
     #[ORM\JoinTable(name: 'tag_booking')]
     #[ORM\JoinColumn(name: 'booking_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'practicalCourses', cascade: [], orphanRemoval: false)]
+    protected Collection $organizer;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
 
     public function __construct()
     {
@@ -337,4 +345,26 @@ class Examen extends AbstractBooking
 
         return $this;
     }
+
+    function getOrganizer(): Collection
+    {
+        return $this->organizer;
+    }
+
+    function setOrganizer(Collection $organizer): self
+    {
+        $this->organizer = $organizer;
+        return $this;
+    }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
 }

+ 45 - 0
src/Entity/Booking/OrganizationHoliday.php

@@ -5,8 +5,11 @@ declare(strict_types=1);
 namespace App\Entity\Booking;
 
 use ApiPlatform\Metadata\ApiResource;
+use App\Entity\Access\Access;
+use App\Entity\Core\Tagg;
 use App\Entity\Organization\Organization;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\Equipment;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -32,6 +35,15 @@ class OrganizationHoliday extends AbstractBooking
     #[ORM\JoinColumn(nullable: false)]
     private Organization $organization;
 
+    #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'practicalCourses', cascade: [], orphanRemoval: false)]
+    protected Collection $organizer;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
+
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'bookings', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
     public function __construct()
     {
         $this->eventRecur = new ArrayCollection();
@@ -90,4 +102,37 @@ class OrganizationHoliday extends AbstractBooking
 
         return $this;
     }
+
+    function getOrganizer(): Collection
+    {
+        return $this->organizer;
+    }
+
+    function setOrganizer(Collection $organizer): self
+    {
+        $this->organizer = $organizer;
+        return $this;
+    }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
 }

+ 60 - 0
src/Entity/Booking/PersonHoliday.php

@@ -7,6 +7,9 @@ namespace App\Entity\Booking;
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Access\Access;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Core\Tagg;
+use App\Entity\Organization\Organization;
+use App\Entity\Product\Equipment;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -31,6 +34,19 @@ class PersonHoliday extends AbstractBooking
     #[ORM\ManyToOne(inversedBy: 'holidays')]
     private Access $access;
 
+    #[ORM\ManyToMany(targetEntity: Access::class, inversedBy: 'practicalCourses', cascade: [], orphanRemoval: false)]
+    protected Collection $organizer;
+
+    #[ORM\ManyToMany(targetEntity: Equipment::class, cascade: [], orphanRemoval: false)]
+    protected Collection $equipments;
+
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'bookings', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
+    #[ORM\ManyToOne(targetEntity: Organization::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Organization $organization;
+
     public function __construct()
     {
         $this->eventRecur = new ArrayCollection();
@@ -89,4 +105,48 @@ class PersonHoliday extends AbstractBooking
 
         return $this;
     }
+
+    function getOrganizer(): Collection
+    {
+        return $this->organizer;
+    }
+
+    function setOrganizer(Collection $organizer): self
+    {
+        $this->organizer = $organizer;
+        return $this;
+    }
+
+    function getEquipments(): Collection
+    {
+        return $this->equipments;
+    }
+
+    function setEquipments(Collection $equipments): self
+    {
+        $this->equipments = $equipments;
+        return $this;
+    }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
+
+    function getOrganization(): Organization
+    {
+        return $this->organization;
+    }
+
+    function setOrganization(Organization $organization): self
+    {
+        $this->organization = $organization;
+        return $this;
+    }
 }

+ 26 - 0
src/Entity/Core/AbstractControl.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Core;
 
 use App\Entity\Access\Access;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 #[ORM\MappedSuperclass]
@@ -19,8 +20,33 @@ abstract class AbstractControl
     #[ORM\JoinColumn(nullable: true)]
     protected Access $accompanist;
 
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'controls', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getAccompanist(): Access
+    {
+        return $this->accompanist;
+    }
+
+    function setAccompanist(Access $accompanist): self
+    {
+        $this->accompanist = $accompanist;
+        return $this;
+    }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Core/AbstractRepair.php

@@ -4,6 +4,7 @@ declare(strict_types=1);
 
 namespace App\Entity\Core;
 
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 #[ORM\MappedSuperclass]
@@ -14,8 +15,22 @@ abstract class AbstractRepair
     #[ORM\GeneratedValue]
     protected ?int $id = null;
 
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'repairs', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Core/AddressPostal.php

@@ -78,6 +78,9 @@ class AddressPostal
     #[ORM\OneToMany(mappedBy: 'addressPostal', targetEntity: AbstractPlace::class)]
     private Collection $places;
 
+    #[ORM\OneToMany(mappedBy: 'addressPostal', targetEntity: OrganizationAddressPostal::class, cascade: [], orphanRemoval: false)]
+    protected Collection $organizationAddressPostals;
+
     public function __construct()
     {
         $this->places = new ArrayCollection();
@@ -249,4 +252,15 @@ class AddressPostal
 
         return $this;
     }
+
+    function getOrganizationAddressPostals(): Collection
+    {
+        return $this->organizationAddressPostals;
+    }
+
+    function setOrganizationAddressPostals(Collection $organizationAddressPostals): self
+    {
+        $this->organizationAddressPostals = $organizationAddressPostals;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Core/City.php

@@ -19,8 +19,23 @@ class City
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\ManyToOne(targetEntity: Department::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Department $department;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getDepartment(): Department
+    {
+        return $this->department;
+    }
+
+    function setDepartment(Department $department): self
+    {
+        $this->department = $department;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Core/Department.php

@@ -19,8 +19,23 @@ class Department
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\ManyToOne(targetEntity: Region::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Region $region;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getRegion(): Region
+    {
+        return $this->region;
+    }
+
+    function setRegion(Region $region): self
+    {
+        $this->region = $region;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Core/Region.php

@@ -19,8 +19,23 @@ class Region
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\ManyToOne(targetEntity: Country::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected Country $country;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getCountry(): Country
+    {
+        return $this->country;
+    }
+
+    function setCountry(Country $country): self
+    {
+        $this->country = $country;
+        return $this;
+    }
 }

+ 88 - 0
src/Entity/Core/Tagg.php

@@ -10,13 +10,16 @@ use App\Entity\AccessWish\AccessWish;
 use App\Entity\Billing\AbstractBillingIntangible;
 use App\Entity\Billing\AbstractBillAccounting;
 use App\Entity\Billing\BillPayment;
+use App\Entity\Booking\AbstractBooking;
 use App\Entity\Booking\Course;
 use App\Entity\Booking\EducationalProject;
 use App\Entity\Booking\Event;
 use App\Entity\Booking\Examen;
 use App\Entity\Education\Education;
+use App\Entity\Education\EducationCurriculumPack;
 use App\Entity\Education\EducationNotation;
 use App\Entity\Education\EducationStudent;
+use App\Entity\Message\AbstractMessage;
 use App\Entity\Message\Email;
 use App\Entity\Message\Mail;
 use App\Entity\Message\Sms;
@@ -27,6 +30,7 @@ use App\Entity\Person\Commission;
 use App\Entity\Place\AbstractPlace;
 use App\Entity\Place\PlaceControl;
 use App\Entity\Place\PlaceRepair;
+use App\Entity\Product\AbstractProduct;
 use App\Entity\Product\Equipment;
 use App\Entity\Product\EquipmentControl;
 use App\Entity\Product\EquipmentLoan;
@@ -135,6 +139,24 @@ class Tagg
     #[ORM\ManyToMany(targetEntity: Sms::class, mappedBy: 'tags')]
     protected Collection $sms;
 
+    #[ORM\ManyToMany(targetEntity: AbstractProduct::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $products;
+
+    #[ORM\ManyToMany(targetEntity: AbstractBooking::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $bookings;
+
+    #[ORM\ManyToMany(targetEntity: AbstractMessage::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $messages;
+
+    #[ORM\ManyToMany(targetEntity: AbstractRepair::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $repairs;
+
+    #[ORM\ManyToMany(targetEntity: AbstractControl::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $controls;
+
+    #[ORM\ManyToMany(targetEntity: EducationCurriculumPack::class, mappedBy: 'tags', cascade: [], orphanRemoval: false)]
+    protected Collection $educationCurriculumPacks;
+
     public function __construct()
     {
         $this->accesses = new ArrayCollection();
@@ -911,4 +933,70 @@ class Tagg
 
         return $this;
     }
+
+    function getProducts(): Collection
+    {
+        return $this->products;
+    }
+
+    function setProducts(Collection $products): self
+    {
+        $this->products = $products;
+        return $this;
+    }
+
+    function getBookings(): Collection
+    {
+        return $this->bookings;
+    }
+
+    function setBookings(Collection $bookings): self
+    {
+        $this->bookings = $bookings;
+        return $this;
+    }
+
+    function getMessages(): Collection
+    {
+        return $this->messages;
+    }
+
+    function setMessages(Collection $messages): self
+    {
+        $this->messages = $messages;
+        return $this;
+    }
+
+    function getRepairs(): Collection
+    {
+        return $this->repairs;
+    }
+
+    function setRepairs(Collection $repairs): self
+    {
+        $this->repairs = $repairs;
+        return $this;
+    }
+
+    function getControls(): Collection
+    {
+        return $this->controls;
+    }
+
+    function setControls(Collection $controls): self
+    {
+        $this->controls = $controls;
+        return $this;
+    }
+
+    function getEducationCurriculumPacks(): Collection
+    {
+        return $this->educationCurriculumPacks;
+    }
+
+    function setEducationCurriculumPacks(Collection $educationCurriculumPacks): self
+    {
+        $this->educationCurriculumPacks = $educationCurriculumPacks;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Education/Cycle.php

@@ -65,6 +65,9 @@ class Cycle
     #[ORM\OneToMany(mappedBy: 'cycle', targetEntity: CycleByEducation::class, orphanRemoval: true)]
     private Collection $cycleByEducations;
 
+    #[ORM\OneToMany(mappedBy: 'cycle', targetEntity: EducationCurriculum::class, cascade: [], orphanRemoval: false)]
+    protected Collection $educationCurriculums;
+
     public function __construct()
     {
         $this->cycleByEducations = new ArrayCollection();
@@ -164,4 +167,15 @@ class Cycle
 
         return $this;
     }
+
+    function getEducationCurriculums(): Collection
+    {
+        return $this->educationCurriculums;
+    }
+
+    function setEducationCurriculums(Collection $educationCurriculums): self
+    {
+        $this->educationCurriculums = $educationCurriculums;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Education/Education.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Education;
 
 use ApiPlatform\Metadata\ApiResource;
+use App\Entity\AccessWish\EducationStudentWish;
 use App\Entity\Booking\Course;
 use App\Entity\Booking\Examen;
 use App\Entity\Core\Tagg;
@@ -59,6 +60,9 @@ class Education
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
     private EducationNotationConfig $educationNotationConfig;
 
+    #[ORM\OneToMany(mappedBy: 'educationWish', targetEntity: EducationStudentWish::class, cascade: [], orphanRemoval: true)]
+    protected Collection $educationWishes;
+
     public function __construct()
     {
         $this->educationCurriculums = new ArrayCollection();
@@ -283,4 +287,15 @@ class Education
 
         return $this;
     }
+
+    function getEducationWishes(): Collection
+    {
+        return $this->educationWishes;
+    }
+
+    function setEducationWishes(Collection $educationWishes): self
+    {
+        $this->educationWishes = $educationWishes;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Education/EducationComplement.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Education;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -19,8 +20,22 @@ class EducationComplement
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToMany(mappedBy: 'educationComplement', targetEntity: Education::class, cascade: [], orphanRemoval: true)]
+    protected Collection $educations;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getEducations(): Collection
+    {
+        return $this->educations;
+    }
+
+    function setEducations(Collection $educations): self
+    {
+        $this->educations = $educations;
+        return $this;
+    }
 }

+ 117 - 0
src/Entity/Education/EducationCurriculum.php

@@ -5,6 +5,10 @@ declare(strict_types=1);
 namespace App\Entity\Education;
 
 use ApiPlatform\Metadata\ApiResource;
+use App\Entity\AccessWish\EducationStudentWish;
+use App\Entity\Booking\Course;
+use App\Entity\Booking\Examen;
+use App\Entity\Product\Intangible;
 use App\Repository\Education\EducationCurriculumRepository;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use Doctrine\Common\Collections\ArrayCollection;
@@ -42,6 +46,42 @@ class EducationCurriculum
     #[ORM\InverseJoinColumn(name: 'educationTiming_id', referencedColumnName: 'id')]
     private Collection $educationTimings;
 
+    #[ORM\OneToMany(mappedBy: 'educationCurriculum', targetEntity: EducationStudentWish::class, cascade: [], orphanRemoval: false)]
+    protected Collection $educationStudentWish;
+
+    #[ORM\ManyToMany(targetEntity: Course::class, mappedBy: 'educationCurriculum', cascade: [], orphanRemoval: false)]
+    protected Collection $courses;
+
+    #[ORM\ManyToMany(targetEntity: Examen::class, mappedBy: 'educationCurriculum', cascade: [], orphanRemoval: false)]
+    protected Collection $examens;
+
+    #[ORM\ManyToMany(targetEntity: Intangible::class, mappedBy: 'educationCurriculums', cascade: [], orphanRemoval: false)]
+    protected Collection $intangibles;
+
+    #[ORM\ManyToMany(
+        targetEntity: EducationCurriculumPack::class,
+        mappedBy: 'requiredEducationCurriculums',
+        cascade: [],
+        orphanRemoval: true,
+    )]
+    protected Collection $requiredEducationCurriculumPacks;
+
+    #[ORM\ManyToMany(
+        targetEntity: EducationCurriculumPack::class,
+        mappedBy: 'requiredChoicesEducationCurriculums',
+        cascade: [],
+        orphanRemoval: true,
+    )]
+    protected Collection $requiredChoicesEducationCurriculumPacks;
+
+    #[ORM\ManyToMany(
+        targetEntity: EducationCurriculumPack::class,
+        mappedBy: 'optionnalEducationCurriculums',
+        cascade: [],
+        orphanRemoval: true,
+    )]
+    protected Collection $optionnalEducationCurriculumPacks;
+
     public function __construct()
     {
         $this->educationStudent = new ArrayCollection();
@@ -142,4 +182,81 @@ class EducationCurriculum
 
         return $this;
     }
+
+    function getEducationStudentWish(): Collection
+    {
+        return $this->educationStudentWish;
+    }
+
+    function setEducationStudentWish(Collection $educationStudentWish): self
+    {
+        $this->educationStudentWish = $educationStudentWish;
+        return $this;
+    }
+
+    function getCourses(): Collection
+    {
+        return $this->courses;
+    }
+
+    function setCourses(Collection $courses): self
+    {
+        $this->courses = $courses;
+        return $this;
+    }
+
+    function getExamens(): Collection
+    {
+        return $this->examens;
+    }
+
+    function setExamens(Collection $examens): self
+    {
+        $this->examens = $examens;
+        return $this;
+    }
+
+    function getIntangibles(): Collection
+    {
+        return $this->intangibles;
+    }
+
+    function setIntangibles(Collection $intangibles): self
+    {
+        $this->intangibles = $intangibles;
+        return $this;
+    }
+
+    function getRequiredEducationCurriculumPacks(): Collection
+    {
+        return $this->requiredEducationCurriculumPacks;
+    }
+
+    function setRequiredEducationCurriculumPacks(Collection $requiredEducationCurriculumPacks): self
+    {
+        $this->requiredEducationCurriculumPacks = $requiredEducationCurriculumPacks;
+        return $this;
+    }
+
+    function getRequiredChoicesEducationCurriculumPacks(): Collection
+    {
+        return $this->requiredChoicesEducationCurriculumPacks;
+    }
+
+    function setRequiredChoicesEducationCurriculumPacks(Collection $requiredChoicesEducationCurriculumPacks): self
+    {
+        $this->requiredChoicesEducationCurriculumPacks = $requiredChoicesEducationCurriculumPacks;
+        return $this;
+    }
+
+    function getOptionnalEducationCurriculumPacks(): Collection
+    {
+        return $this->optionnalEducationCurriculumPacks;
+    }
+
+    function setOptionnalEducationCurriculumPacks(Collection $optionnalEducationCurriculumPacks): self
+    {
+        $this->optionnalEducationCurriculumPacks = $optionnalEducationCurriculumPacks;
+        return $this;
+    }
 }

+ 16 - 0
src/Entity/Education/EducationStudent.php

@@ -8,6 +8,7 @@ use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Access\Access;
 use App\Entity\Core\Tagg;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Product\EquipmentList;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -57,6 +58,10 @@ class EducationStudent
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
     private EducationTiming $educationTiming;
 
+    #[ORM\ManyToOne(targetEntity: EquipmentList::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected EquipmentList $speciality;
+
     public function __construct()
     {
         $this->teachers = new ArrayCollection();
@@ -225,4 +230,15 @@ class EducationStudent
 
         return $this;
     }
+
+    function getSpeciality(): EquipmentList
+    {
+        return $this->speciality;
+    }
+
+    function setSpeciality(EquipmentList $speciality): self
+    {
+        $this->speciality = $speciality;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Message/AbstractMessage.php

@@ -7,6 +7,7 @@ namespace App\Entity\Message;
 use App\Attribute\OrganizationDefaultValue;
 use App\Entity\Organization\Organization;
 use App\Enum\Message\MessageStatusEnum;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 use Ramsey\Uuid\Doctrine\UuidGenerator;
 use Ramsey\Uuid\UuidInterface;
@@ -53,6 +54,9 @@ abstract class AbstractMessage
     #[ORM\Column(type: 'text', nullable: true)]
     protected string $text;
 
+    #[ORM\OneToMany(mappedBy: 'message', targetEntity: ReportMessage::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $reportMessage;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -122,4 +126,15 @@ abstract class AbstractMessage
     {
         return $this->dateSent;
     }
+
+    function getReportMessage(): Collection
+    {
+        return $this->reportMessage;
+    }
+
+    function setReportMessage(Collection $reportMessage): self
+    {
+        $this->reportMessage = $reportMessage;
+        return $this;
+    }
 }

+ 16 - 0
src/Entity/Network/Network.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Network;
 
 use ApiPlatform\Metadata\ApiResource;
+use App\Entity\Core\File;
 use App\Repository\Network\NetworkRepository;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use Doctrine\Common\Collections\ArrayCollection;
@@ -40,6 +41,10 @@ class Network
     #[ORM\OneToMany(mappedBy: 'network', targetEntity: NetworkOrganization::class, orphanRemoval: true)]
     private Collection $organizations;
 
+    #[ORM\ManyToOne(targetEntity: File::class, cascade: [], inversedBy: 'networks')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected File $image;
+
     #[Pure]
     public function __construct()
     {
@@ -123,4 +128,15 @@ class Network
 
         return $this;
     }
+
+    function getImage(): File
+    {
+        return $this->image;
+    }
+
+    function setImage(File $image): self
+    {
+        $this->image = $image;
+        return $this;
+    }
 }

+ 15 - 0
src/Entity/Organization/Activity.php

@@ -54,6 +54,10 @@ class Activity
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
     private Collection $tags;
 
+    #[ORM\ManyToOne(targetEntity: TypeOfPractice::class, cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected TypeOfPractice $typeOfSection;
+
     public function __construct()
     {
         $this->categories = new ArrayCollection();
@@ -191,4 +195,15 @@ class Activity
 
         return $this;
     }
+
+    function getTypeOfSection(): TypeOfPractice
+    {
+        return $this->typeOfSection;
+    }
+
+    function setTypeOfSection(TypeOfPractice $typeOfSection): self
+    {
+        $this->typeOfSection = $typeOfSection;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Organization/CotisationByYear.php

@@ -23,6 +23,9 @@ class CotisationByYear
     #[ORM\JoinColumn(name: 'organization_id', referencedColumnName: 'id', nullable: false)]
     private Organization $organization;
 
+    #[ORM\OneToOne(mappedBy: 'cotisationByYear', targetEntity: CotisationStaffInfos::class, cascade: ['persist'])]
+    protected CotisationStaffInfos $cotisationStaffInfos;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -39,4 +42,15 @@ class CotisationByYear
 
         return $this;
     }
+
+    function getCotisationStaffInfos(): CotisationStaffInfos
+    {
+        return $this->cotisationStaffInfos;
+    }
+
+    function setCotisationStaffInfos(CotisationStaffInfos $cotisationStaffInfos): self
+    {
+        $this->cotisationStaffInfos = $cotisationStaffInfos;
+        return $this;
+    }
 }

+ 14 - 0
src/Entity/Organization/CotisationStaffInfos.php

@@ -19,8 +19,22 @@ class CotisationStaffInfos
     #[ORM\GeneratedValue]
     private ?int $id = null;
 
+    #[ORM\OneToOne(targetEntity: CotisationByYear::class, inversedBy: 'cotisationStaffInfos', cascade: [])]
+    protected CotisationByYear $cotisationByYear;
+
     public function getId(): ?int
     {
         return $this->id;
     }
+
+    function getCotisationByYear(): CotisationByYear
+    {
+        return $this->cotisationByYear;
+    }
+
+    function setCotisationByYear(CotisationByYear $cotisationByYear): self
+    {
+        $this->cotisationByYear = $cotisationByYear;
+        return $this;
+    }
 }

+ 16 - 0
src/Entity/Organization/OnlineRegistrationDocument.php

@@ -27,6 +27,10 @@ class OnlineRegistrationDocument
     #[ORM\JoinColumn(nullable: true)]
     private OnlineRegistrationSettings $guardiansOnlineRegistrationSettings;
 
+    #[ORM\ManyToOne(targetEntity: OnlineRegistrationSettings::class, inversedBy: 'adultStudentDocuments', cascade: [])]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected OnlineRegistrationSettings $adultStudentOnlineRegistrationSettings;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -55,4 +59,16 @@ class OnlineRegistrationDocument
 
         return $this;
     }
+
+    function getAdultStudentOnlineRegistrationSettings(): OnlineRegistrationSettings
+    {
+        return $this->adultStudentOnlineRegistrationSettings;
+    }
+
+    function setAdultStudentOnlineRegistrationSettings(
+        OnlineRegistrationSettings $adultStudentOnlineRegistrationSettings,
+    ): self {
+        $this->adultStudentOnlineRegistrationSettings = $adultStudentOnlineRegistrationSettings;
+        return $this;
+    }
 }

+ 33 - 0
src/Entity/Organization/OnlineRegistrationSettings.php

@@ -40,6 +40,17 @@ class OnlineRegistrationSettings
     #[ORM\OneToMany(mappedBy: 'onlineRegistrationSettingsNewEnrolments', targetEntity: OnlineRegistrationOpeningPeriod::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $openingPeriodsNewEnrolments;
 
+    #[ORM\OneToOne(targetEntity: Organization::class, inversedBy: 'onlineRegistrationSettings', cascade: [])]
+    protected Organization $organization;
+
+    #[ORM\OneToMany(
+        mappedBy: 'adultStudentOnlineRegistrationSettings',
+        targetEntity: OnlineRegistrationDocument::class,
+        cascade: ['persist'],
+        orphanRemoval: true,
+    )]
+    protected Collection $adultStudentDocuments;
+
     public function __construct()
     {
         $this->openingPeriods = new ArrayCollection();
@@ -234,4 +245,26 @@ class OnlineRegistrationSettings
 
         return $this;
     }
+
+    function getOrganization(): Organization
+    {
+        return $this->organization;
+    }
+
+    function setOrganization(Organization $organization): self
+    {
+        $this->organization = $organization;
+        return $this;
+    }
+
+    function getAdultStudentDocuments(): Collection
+    {
+        return $this->adultStudentDocuments;
+    }
+
+    function setAdultStudentDocuments(Collection $adultStudentDocuments): self
+    {
+        $this->adultStudentDocuments = $adultStudentDocuments;
+        return $this;
+    }
 }

+ 159 - 0
src/Entity/Organization/Organization.php

@@ -7,8 +7,12 @@ namespace App\Entity\Organization;
 use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Metadata\Get;
 use App\Entity\Access\Access;
+use App\Entity\Billing\BillingExportSetting;
 use App\Entity\Billing\BillingSetting;
+use App\Entity\Billing\BillSchedule;
+use App\Entity\Billing\FamilyQuotientModel;
 use App\Entity\Booking\Attendance;
+use App\Entity\Booking\AttendanceBookingReason;
 use App\Entity\Booking\Course;
 use App\Entity\Booking\EducationalProject;
 use App\Entity\Booking\Event;
@@ -26,6 +30,7 @@ use App\Entity\Education\EducationCategory;
 use App\Entity\Education\EducationNotationConfig;
 use App\Entity\Education\EducationTiming;
 use App\Entity\Education\PeriodNotation;
+use App\Entity\Message\AbstractMessage;
 use App\Entity\Message\Email;
 use App\Entity\Message\Mail;
 use App\Entity\Message\Sms;
@@ -323,6 +328,39 @@ class Organization
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
     private Collection $tags;
 
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: NetworkOrganization::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $network;
+
+    #[ORM\OneToMany(mappedBy: 'parent', targetEntity: NetworkOrganization::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $networkChild;
+
+    #[ORM\OneToOne(mappedBy: 'organization', targetEntity: BillingExportSetting::class, cascade: ['persist'])]
+    protected BillingExportSetting $billingExportSetting;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Access::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $access;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: AbstractMessage::class, cascade: [], orphanRemoval: true)]
+    protected Collection $messages;
+
+    #[ORM\OneToOne(mappedBy: 'organization', targetEntity: OnlineRegistrationSettings::class, cascade: ['persist'])]
+    protected OnlineRegistrationSettings $onlineRegistrationSettings;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: CotisationByYear::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $cotisationByYears;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: AttendanceBookingReason::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $attendanceBookingReasons;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Cycle::class, cascade: [], orphanRemoval: true)]
+    protected Collection $educationCurriculumPacks;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: FamilyQuotientModel::class, cascade: [], orphanRemoval: true)]
+    protected Collection $familyQuotientModels;
+
+    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: BillSchedule::class, cascade: ['persist'], orphanRemoval: true)]
+    protected Collection $billSchedules;
+
     #[Pure]
     public function __construct()
     {
@@ -1855,4 +1893,125 @@ class Organization
 
         return $this;
     }
+
+    function getNetwork(): Collection
+    {
+        return $this->network;
+    }
+
+    function setNetwork(Collection $network): self
+    {
+        $this->network = $network;
+        return $this;
+    }
+
+    function getNetworkChild(): Collection
+    {
+        return $this->networkChild;
+    }
+
+    function setNetworkChild(Collection $networkChild): self
+    {
+        $this->networkChild = $networkChild;
+        return $this;
+    }
+
+    function getBillingExportSetting(): BillingExportSetting
+    {
+        return $this->billingExportSetting;
+    }
+
+    function setBillingExportSetting(BillingExportSetting $billingExportSetting): self
+    {
+        $this->billingExportSetting = $billingExportSetting;
+        return $this;
+    }
+
+    function getAccess(): Collection
+    {
+        return $this->access;
+    }
+
+    function setAccess(Collection $access): self
+    {
+        $this->access = $access;
+        return $this;
+    }
+
+    function getMessages(): Collection
+    {
+        return $this->messages;
+    }
+
+    function setMessages(Collection $messages): self
+    {
+        $this->messages = $messages;
+        return $this;
+    }
+
+    function getOnlineRegistrationSettings(): OnlineRegistrationSettings
+    {
+        return $this->onlineRegistrationSettings;
+    }
+
+    function setOnlineRegistrationSettings(OnlineRegistrationSettings $onlineRegistrationSettings): self
+    {
+        $this->onlineRegistrationSettings = $onlineRegistrationSettings;
+        return $this;
+    }
+
+    function getCotisationByYears(): Collection
+    {
+        return $this->cotisationByYears;
+    }
+
+    function setCotisationByYears(Collection $cotisationByYears): self
+    {
+        $this->cotisationByYears = $cotisationByYears;
+        return $this;
+    }
+
+    function getAttendanceBookingReasons(): Collection
+    {
+        return $this->attendanceBookingReasons;
+    }
+
+    function setAttendanceBookingReasons(Collection $attendanceBookingReasons): self
+    {
+        $this->attendanceBookingReasons = $attendanceBookingReasons;
+        return $this;
+    }
+
+    function getEducationCurriculumPacks(): Collection
+    {
+        return $this->educationCurriculumPacks;
+    }
+
+    function setEducationCurriculumPacks(Collection $educationCurriculumPacks): self
+    {
+        $this->educationCurriculumPacks = $educationCurriculumPacks;
+        return $this;
+    }
+
+    function getFamilyQuotientModels(): Collection
+    {
+        return $this->familyQuotientModels;
+    }
+
+    function setFamilyQuotientModels(Collection $familyQuotientModels): self
+    {
+        $this->familyQuotientModels = $familyQuotientModels;
+        return $this;
+    }
+
+    function getBillSchedules(): Collection
+    {
+        return $this->billSchedules;
+    }
+
+    function setBillSchedules(Collection $billSchedules): self
+    {
+        $this->billSchedules = $billSchedules;
+        return $this;
+    }
 }

+ 3 - 3
src/Entity/Place/PlaceControl.php

@@ -22,16 +22,16 @@ use Doctrine\ORM\Mapping as ORM;
 class PlaceControl extends AbstractControl
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'place';
+    protected string $discr = 'place';
 
     #[ORM\ManyToOne(inversedBy: 'controls')]
-    private AbstractPlace $place;
+    protected AbstractPlace $place;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'placeControls', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_control')]
     #[ORM\JoinColumn(name: 'control_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
 
     public function __construct()
     {

+ 4 - 4
src/Entity/Place/PlaceRepair.php

@@ -23,20 +23,20 @@ use Doctrine\ORM\Mapping as ORM;
 class PlaceRepair extends AbstractRepair
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'place';
+    protected string $discr = 'place';
 
     #[ORM\ManyToOne(inversedBy: 'placeRepairProviders')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $provider;
+    protected Access $provider;
 
     #[ORM\ManyToOne(inversedBy: 'repairs')]
-    private AbstractPlace $place;
+    protected AbstractPlace $place;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'placeRepairs', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_repair')]
     #[ORM\JoinColumn(name: 'repair_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
 
     public function __construct()
     {

+ 16 - 0
src/Entity/Product/AbstractProduct.php

@@ -4,7 +4,9 @@ declare(strict_types=1);
 
 namespace App\Entity\Product;
 
+use App\Entity\Core\Tagg;
 use App\Entity\Organization\Organization;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
@@ -18,6 +20,9 @@ abstract class AbstractProduct
     #[ORM\GeneratedValue]
     protected ?int $id = null;
 
+    #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'products', cascade: ['persist'], orphanRemoval: false)]
+    protected Collection $tags;
+
     #[ORM\ManyToOne]
     protected Organization $organization;
 
@@ -25,4 +30,15 @@ abstract class AbstractProduct
     {
         return $this->id;
     }
+
+    function getTags(): Collection
+    {
+        return $this->tags;
+    }
+
+    function setTags(Collection $tags): self
+    {
+        $this->tags = $tags;
+        return $this;
+    }
 }

+ 60 - 17
src/Entity/Product/Equipment.php

@@ -6,6 +6,7 @@ namespace App\Entity\Product;
 
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Access\Access;
+use App\Entity\Booking\ExamenConvocation;
 use App\Entity\Core\Tagg;
 use App\Entity\Organization\Organization;
 use App\Entity\Place\AbstractPlace;
@@ -27,72 +28,81 @@ use Doctrine\ORM\Mapping as ORM;
 class Equipment extends AbstractProduct
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'equipment';
+    protected string $discr = 'equipment';
 
     #[ORM\ManyToOne(inversedBy: 'equipments')]
     protected Organization $organization;
 
     #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'equipments')]
-    private Access $access;
+    protected Access $access;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentStorages')]
     #[ORM\JoinColumn(name: 'place_storage_id', nullable: true, onDelete: 'SET NULL')]
-    private AbstractPlace $placeStorage;
+    protected AbstractPlace $placeStorage;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentStorages')]
     #[ORM\JoinColumn(name: 'room_storage_id', nullable: true, onDelete: 'SET NULL')]
-    private Room $roomStorage;
+    protected Room $roomStorage;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentUseds')]
     #[ORM\JoinColumn(name: 'place_used_id', nullable: true, onDelete: 'SET NULL')]
-    private AbstractPlace $placeWhereIsUsed;
+    protected AbstractPlace $placeWhereIsUsed;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentUseds')]
     #[ORM\JoinColumn(name: 'room_used_id', nullable: true, onDelete: 'SET NULL')]
-    private Room $roomWhereIsUsed;
+    protected Room $roomWhereIsUsed;
 
     #[ORM\ManyToOne]
     #[ORM\JoinColumn(nullable: true)]
-    private EquipmentList $equipmentList;
+    protected EquipmentList $equipmentList;
 
     #[ORM\OneToMany(mappedBy: 'parent', targetEntity: EquipmentComposition::class, orphanRemoval: true)]
-    private Collection $equipmentComposition;
+    protected Collection $equipmentComposition;
 
     #[ORM\OneToMany(mappedBy: 'equipment', targetEntity: EquipmentRepair::class, orphanRemoval: true)]
-    private Collection $equipmentRepair;
+    protected Collection $equipmentRepair;
 
     #[ORM\OneToMany(mappedBy: 'equipment', targetEntity: EquipmentControl::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $equipmentControl;
+    protected Collection $equipmentControl;
 
     #[ORM\OneToMany(mappedBy: 'equipment', targetEntity: EquipmentLoan::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $equipmentLoan;
+    protected Collection $equipmentLoan;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentSuppliers')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $supplier;
+    protected Access $supplier;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentControlManagers')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $controlManager;
+    protected Access $controlManager;
 
     #[ORM\ManyToOne(cascade: ['persist'], inversedBy: 'equipmentEditors')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $editor;
+    protected Access $editor;
 
     #[ORM\ManyToMany(targetEntity: EquipmentList::class)]
     #[ORM\JoinColumn(name: 'equipment_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'equipmentlist_id', referencedColumnName: 'id')]
-    private Collection $instrumentOrVoice;
+    protected Collection $instrumentOrVoice;
 
     #[ORM\ManyToOne]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $managerControl;
+    protected Access $managerControl;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'equipments', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_product')]
     #[ORM\JoinColumn(name: 'product_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\OneToMany(mappedBy: 'children', targetEntity: EquipmentComposition::class, cascade: [], orphanRemoval: true)]
+    protected Collection $equipmentCompositionChildren;
+
+    #[ORM\OneToMany(mappedBy: 'equipment', targetEntity: EquipmentLoan::class, cascade: [], orphanRemoval: true)]
+    protected Collection $equipmentLoanFiltered;
+
+    #[ORM\ManyToMany(targetEntity: ExamenConvocation::class, mappedBy: 'equipments', cascade: [], orphanRemoval: false)]
+    protected Collection $examenConvocations;
 
     public function __construct()
     {
@@ -415,4 +425,37 @@ class Equipment extends AbstractProduct
 
         return $this;
     }
+
+    function getEquipmentCompositionChildren(): Collection
+    {
+        return $this->equipmentCompositionChildren;
+    }
+
+    function setEquipmentCompositionChildren(Collection $equipmentCompositionChildren): self
+    {
+        $this->equipmentCompositionChildren = $equipmentCompositionChildren;
+        return $this;
+    }
+
+    function getEquipmentLoanFiltered(): Collection
+    {
+        return $this->equipmentLoanFiltered;
+    }
+
+    function setEquipmentLoanFiltered(Collection $equipmentLoanFiltered): self
+    {
+        $this->equipmentLoanFiltered = $equipmentLoanFiltered;
+        return $this;
+    }
+
+    function getExamenConvocations(): Collection
+    {
+        return $this->examenConvocations;
+    }
+
+    function setExamenConvocations(Collection $examenConvocations): self
+    {
+        $this->examenConvocations = $examenConvocations;
+        return $this;
+    }
 }

+ 3 - 3
src/Entity/Product/EquipmentControl.php

@@ -22,16 +22,16 @@ use Doctrine\ORM\Mapping as ORM;
 class EquipmentControl extends AbstractControl
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'equipment';
+    protected string $discr = 'equipment';
 
     #[ORM\ManyToOne(inversedBy: 'equipmentControl')]
-    private Equipment $equipment;
+    protected Equipment $equipment;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'equipmentControls', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_control')]
     #[ORM\JoinColumn(name: 'control_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
 
     public function __construct()
     {

+ 4 - 4
src/Entity/Product/EquipmentRepair.php

@@ -24,20 +24,20 @@ use Doctrine\ORM\Mapping as ORM;
 class EquipmentRepair extends AbstractRepair
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'equipment';
+    protected string $discr = 'equipment';
 
     #[ORM\ManyToOne(inversedBy: 'equipmentRepairProviders')]
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
-    private Access $provider;
+    protected Access $provider;
 
     #[ORM\ManyToOne(inversedBy: 'equipmentRepair')]
-    private Equipment $equipment;
+    protected Equipment $equipment;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'equipmentRepairs', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_repair')]
     #[ORM\JoinColumn(name: 'repair_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
 
     public function __construct()
     {

+ 33 - 4
src/Entity/Product/Intangible.php

@@ -9,6 +9,7 @@ use App\Entity\Billing\AccessIntangible;
 use App\Entity\Core\Tagg;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use App\Entity\Education\EducationCurriculum;
+use App\Entity\Education\EducationCurriculumPack;
 use App\Entity\Organization\Organization;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
@@ -26,22 +27,28 @@ use Doctrine\ORM\Mapping as ORM;
 class Intangible extends AbstractProduct
 {
     #[ORM\Column(length: 255, nullable: false)]
-    private string $discr = 'intangible';
+    protected string $discr = 'intangible';
 
     #[ORM\ManyToOne(inversedBy: 'intangibles')]
     protected Organization $organization;
 
     #[ORM\ManyToMany(targetEntity: EducationCurriculum::class)]
-    private Collection $educationCurriculums;
+    protected Collection $educationCurriculums;
 
     #[ORM\OneToMany(mappedBy: 'intangible', targetEntity: AccessIntangible::class, cascade: ['persist'], orphanRemoval: true)]
-    private Collection $accessIntangibles;
+    protected Collection $accessIntangibles;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'intangibles', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_product')]
     #[ORM\JoinColumn(name: 'product_id', referencedColumnName: 'id')]
     #[ORM\InverseJoinColumn(name: 'tag_id', referencedColumnName: 'id')]
-    private Collection $tags;
+    protected Collection $tags;
+
+    #[ORM\ManyToMany(targetEntity: EducationCurriculumPack::class, inversedBy: 'intangibles', cascade: [], orphanRemoval: false)]
+    protected Collection $educationCurriculumPacks;
+
+    #[ORM\OneToOne(inversedBy: 'intangible', targetEntity: IntangiblePriceAndDiscount::class, cascade: ['persist'])]
+    protected IntangiblePriceAndDiscount $intangiblePriceAndDiscount;
 
     public function __construct()
     {
@@ -151,4 +158,26 @@ class Intangible extends AbstractProduct
 
         return $this;
     }
+
+    function getEducationCurriculumPacks(): Collection
+    {
+        return $this->educationCurriculumPacks;
+    }
+
+    function setEducationCurriculumPacks(Collection $educationCurriculumPacks): self
+    {
+        $this->educationCurriculumPacks = $educationCurriculumPacks;
+        return $this;
+    }
+
+    function getIntangiblePriceAndDiscount(): IntangiblePriceAndDiscount
+    {
+        return $this->intangiblePriceAndDiscount;
+    }
+
+    function setIntangiblePriceAndDiscount(IntangiblePriceAndDiscount $intangiblePriceAndDiscount): self
+    {
+        $this->intangiblePriceAndDiscount = $intangiblePriceAndDiscount;
+        return $this;
+    }
 }

+ 32 - 0
src/Entity/Product/IntangibleDiscountDetail.php

@@ -6,6 +6,8 @@ namespace App\Entity\Product;
 
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Billing\FamilyQuotient;
+use App\Entity\Billing\FamilyQuotientBand;
+use App\Entity\Billing\FamilyQuotientBandDetail;
 use App\Entity\Billing\ResidenceArea;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use Doctrine\ORM\Mapping as ORM;
@@ -35,6 +37,14 @@ class IntangibleDiscountDetail
     #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
     private FamilyQuotient $familyQuotient;
 
+    #[ORM\ManyToOne(targetEntity: FamilyQuotientBandDetail::class, cascade: [], inversedBy: 'intangibleDiscountDetails')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected FamilyQuotientBandDetail $familyQuotientBandDetail;
+
+    #[ORM\ManyToOne(targetEntity: FamilyQuotientBand::class, cascade: [], inversedBy: 'intangibleDiscountDetails')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected FamilyQuotientBand $familyQuotientBand;
+
     public function getId(): ?int
     {
         return $this->id;
@@ -75,4 +85,26 @@ class IntangibleDiscountDetail
 
         return $this;
     }
+
+    function getFamilyQuotientBandDetail(): FamilyQuotientBandDetail
+    {
+        return $this->familyQuotientBandDetail;
+    }
+
+    function setFamilyQuotientBandDetail(FamilyQuotientBandDetail $familyQuotientBandDetail): self
+    {
+        $this->familyQuotientBandDetail = $familyQuotientBandDetail;
+        return $this;
+    }
+
+    function getFamilyQuotientBand(): FamilyQuotientBand
+    {
+        return $this->familyQuotientBand;
+    }
+
+    function setFamilyQuotientBand(FamilyQuotientBand $familyQuotientBand): self
+    {
+        $this->familyQuotientBand = $familyQuotientBand;
+        return $this;
+    }
 }

+ 31 - 0
src/Entity/Product/IntangiblePriceAndDiscount.php

@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace App\Entity\Product;
 
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+use App\Entity\Billing\FamilyQuotientModel;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
@@ -26,6 +27,13 @@ class IntangiblePriceAndDiscount
     #[ORM\OneToMany(mappedBy: 'intangiblePriceAndDiscount', targetEntity: IntangibleDiscountDetail::class, cascade: ['persist'], orphanRemoval: true)]
     private Collection $intangibleDiscountDetails;
 
+    #[ORM\OneToOne(mappedBy: 'intangiblePriceAndDiscount', targetEntity: Intangible::class, cascade: [])]
+    protected Intangible $intangible;
+
+    #[ORM\ManyToOne(targetEntity: FamilyQuotientModel::class, cascade: [], inversedBy: 'intangiblePriceAndDiscounts')]
+    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: false, onDelete: 'SET NULL')]
+    protected FamilyQuotientModel $familyQuotientModel;
+
     public function __construct()
     {
         $this->intangibleDiscountDetails = new ArrayCollection();
@@ -65,4 +73,27 @@ class IntangiblePriceAndDiscount
 
         return $this;
     }
+
+
+    function getIntangible(): Intangible
+    {
+        return $this->intangible;
+    }
+
+    function setIntangible(Intangible $intangible): self
+    {
+        $this->intangible = $intangible;
+        return $this;
+    }
+
+    function getFamilyQuotientModel(): FamilyQuotientModel
+    {
+        return $this->familyQuotientModel;
+    }
+
+    function setFamilyQuotientModel(FamilyQuotientModel $familyQuotientModel): self
+    {
+        $this->familyQuotientModel = $familyQuotientModel;
+        return $this;
+    }
 }