Replace ArrayCollection with Collection&Selectable on some entity typing (fix previous commit)

Updated entity properties to use Collection&Selectable for better type safety and interoperability. This change affects User, Household, Calendar, Person, AccompanyingPeriod, and EntityWorkflow classes.
This commit is contained in:
2024-08-28 12:04:43 +02:00
parent c16219dc6d
commit b0485dbcc8
6 changed files with 22 additions and 19 deletions

View File

@@ -135,10 +135,10 @@ class AccompanyingPeriod implements
private ?Location $administrativeLocation = null;
/**
* @var ArrayCollection<int, Calendar>
* @var \Doctrine\Common\Collections\Collection<int, \Chill\CalendarBundle\Entity\Calendar>&Selectable
*/
#[ORM\OneToMany(mappedBy: 'accompanyingPeriod', targetEntity: Calendar::class)]
private ArrayCollection $calendars;
private Collection&Selectable $calendars;
#[Groups(['read', 'write', 'docgen:read'])]
#[Assert\NotBlank(groups: [AccompanyingPeriod::STEP_CLOSED])]
@@ -153,7 +153,7 @@ class AccompanyingPeriod implements
private ?ClosingMotive $closingMotive = null;
/**
* @var Collection<(int|string), Comment>
* @var \Doctrine\Common\Collections\Collection<int, \Chill\PersonBundle\Entity\AccompanyingPeriod\Comment>
*/
#[Assert\NotBlank(groups: [AccompanyingPeriod::STEP_DRAFT])]
#[ORM\OneToMany(mappedBy: 'accompanyingPeriod', targetEntity: Comment::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
@@ -246,7 +246,7 @@ class AccompanyingPeriod implements
private ?ThirdParty $requestorThirdParty = null;
/**
* @var Collection<int, Resource>
* @var Collection<int, AccompanyingPeriod\Resource>
*/
#[Groups(['read', 'docgen:read'])]
#[ORM\OneToMany(targetEntity: AccompanyingPeriod\Resource::class, mappedBy: 'accompanyingPeriod', cascade: ['persist', 'remove'], orphanRemoval: true)]
@@ -427,7 +427,7 @@ class AccompanyingPeriod implements
return $this;
}
public function addResource(Resource $resource): self
public function addResource(AccompanyingPeriod\Resource $resource): self
{
$resource->setAccompanyingPeriod($this);
$this->resources[] = $resource;
@@ -592,7 +592,7 @@ class AccompanyingPeriod implements
}
/**
* @return ReadableCollection<(int|string), Comment>
* @return ReadableCollection<int, Comment>
*/
#[Groups(['read'])]
public function getComments(): ReadableCollection
@@ -897,6 +897,9 @@ class AccompanyingPeriod implements
return $this->requestorThirdParty;
}
/**
* @return Collection<int, AccompanyingPeriod\Resource>
*/
public function getResources(): Collection
{
return $this->resources;

View File

@@ -48,12 +48,12 @@ class Household implements HasCentersInterface
private CommentEmbeddable $commentMembers;
/**
* @var ArrayCollection<int, HouseholdComposition>
* @var \Doctrine\Common\Collections\Collection<int, \Chill\PersonBundle\Entity\Household\HouseholdComposition>&Selectable
*/
#[Assert\Valid(groups: ['household_composition'], traverse: true)]
#[ORM\OneToMany(mappedBy: 'household', targetEntity: HouseholdComposition::class, cascade: ['persist'], orphanRemoval: true)]
#[ORM\OrderBy(['startDate' => Criteria::DESC])]
private ArrayCollection $compositions;
private Collection&Selectable $compositions;
#[Serializer\Groups(['read', 'docgen:read'])]
#[ORM\Id]

View File

@@ -39,6 +39,7 @@ use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\Selectable;
use Doctrine\ORM\Mapping as ORM;
use libphonenumber\PhoneNumber;
use Symfony\Component\Serializer\Annotation\DiscriminatorMap;
@@ -153,10 +154,10 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
private ?PersonCenterCurrent $centerCurrent = null;
/**
* @var ArrayCollection<int, PersonCenterHistory>
* @var \Doctrine\Common\Collections\Collection<int, \Chill\PersonBundle\Entity\Person\PersonCenterHistory>&Selectable
*/
#[ORM\OneToMany(mappedBy: 'person', targetEntity: PersonCenterHistory::class, cascade: ['persist', 'remove'])]
private ArrayCollection $centerHistory;
private Collection&Selectable $centerHistory;
/**
* Array where customfield's data are stored.
@@ -1440,7 +1441,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
return $this;
}
public function setCenterHistory(Collection $centerHistory): Person
public function setCenterHistory(Collection&Selectable $centerHistory): Person
{
$this->centerHistory = $centerHistory;