first impl of event (WIP)

This commit is contained in:
2022-02-11 10:31:17 +01:00
parent f2221565c5
commit 441704dc29
5 changed files with 330 additions and 6 deletions

View File

@@ -0,0 +1,119 @@
<?php
namespace Chill\PersonBundle\Event\Person;
use Chill\MainBundle\Entity\Address;
use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Entity\Household\HouseholdMember;
use Chill\PersonBundle\Entity\Person;
use Symfony\Contracts\EventDispatcher\Event;
class PersonAddressMoveEvent extends Event
{
public const PERSON_MOVE_POST = 'chill_person.person_move_post';
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
{
$this->previousAddress = $previousAddress;
return $this;
}
public function getPerson(): Person
{
return $this->person;
}
public function getPreviousAddress(): ?Address
{
return $this->previousAddress;
}
public function getPreviousHousehold(): ?Household
{
if (null !== $previousMembership = $this->getPreviousMembership()) {
return $previousMembership->getHousehold();
}
return null;
}
public function getNextHousehold(): ?Household
{
if (NULL !== $nextMembership = $this->getNextMembership()) {
return $nextMembership->getHousehold();
}
return null;
}
public function personChangeHousehold(): bool
{
return $this->getPreviousHousehold() !== $this->getNextHousehold();
}
public function personChangeAddress(): bool
{
return $this->getPreviousAddress() !== $this->getNextAddress();
}
/**
* @return HouseholdMember|null
*/
public function getPreviousMembership(): ?HouseholdMember
{
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;
}
public function setNextAddress(?Address $nextAddress): PersonAddressMoveEvent
{
$this->nextAddress = $nextAddress;
return $this;
}
}