migration for history, and create history location on each change

This commit is contained in:
2022-02-14 23:03:40 +01:00
parent 441704dc29
commit b9dbb1916a
6 changed files with 324 additions and 173 deletions

View File

@@ -1,5 +1,14 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\PersonBundle\Event\Person;
use Chill\MainBundle\Entity\Address;
@@ -12,32 +21,40 @@ class PersonAddressMoveEvent extends Event
{
public const PERSON_MOVE_POST = 'chill_person.person_move_post';
private ?Address $nextAddress;
private ?HouseholdMember $nextMembership;
private Person $person;
private ?Address $previousAddress;
private ?Address $nextAddress;
private ?HouseholdMember $previousMembership;
private ?HouseholdMember $nextMembership;
public function __construct(
Person $person
) {
$this->person = $person;
}
/**
* @param Address|null $previousAddress
* @return PersonAddressMoveEvent
*/
public function setPreviousAddress(?Address $previousAddress): PersonAddressMoveEvent
public function getNextAddress(): ?Address
{
$this->previousAddress = $previousAddress;
return $this;
return $this->nextAddress;
}
public function getNextHousehold(): ?Household
{
if (null !== $nextMembership = $this->getNextMembership()) {
return $nextMembership->getHousehold();
}
return null;
}
public function getNextMembership(): ?HouseholdMember
{
return $this->nextMembership;
}
public function getPerson(): Person
{
@@ -58,18 +75,9 @@ class PersonAddressMoveEvent extends Event
return null;
}
public function getNextHousehold(): ?Household
public function getPreviousMembership(): ?HouseholdMember
{
if (NULL !== $nextMembership = $this->getNextMembership()) {
return $nextMembership->getHousehold();
}
return null;
}
public function personChangeHousehold(): bool
{
return $this->getPreviousHousehold() !== $this->getNextHousehold();
return $this->previousMembership;
}
public function personChangeAddress(): bool
@@ -77,43 +85,36 @@ class PersonAddressMoveEvent extends Event
return $this->getPreviousAddress() !== $this->getNextAddress();
}
/**
* @return HouseholdMember|null
*/
public function getPreviousMembership(): ?HouseholdMember
public function personChangeHousehold(): bool
{
return $this->previousMembership;
}
/**
* @param HouseholdMember|null $previousMembership
* @return PersonAddressMoveEvent
*/
public function setPreviousMembership(?HouseholdMember $previousMembership): PersonAddressMoveEvent
{
$this->previousMembership = $previousMembership;
return $this;
}
public function getNextMembership(): ?HouseholdMember
{
return $this->nextMembership;
}
public function setNextMembership(?HouseholdMember $nextMembership): PersonAddressMoveEvent
{
$this->nextMembership = $nextMembership;
return $this;
}
public function getNextAddress(): ?Address
{
return $this->nextAddress;
return $this->getPreviousHousehold() !== $this->getNextHousehold();
}
public function setNextAddress(?Address $nextAddress): PersonAddressMoveEvent
{
$this->nextAddress = $nextAddress;
return $this;
}
public function setNextMembership(?HouseholdMember $nextMembership): PersonAddressMoveEvent
{
$this->nextMembership = $nextMembership;
return $this;
}
public function setPreviousAddress(?Address $previousAddress): PersonAddressMoveEvent
{
$this->previousAddress = $previousAddress;
return $this;
}
public function setPreviousMembership(?HouseholdMember $previousMembership): PersonAddressMoveEvent
{
$this->previousMembership = $previousMembership;
return $this;
}
}