create view for current address and apply on Person/Household normalizer

This commit is contained in:
2021-06-17 13:21:55 +02:00
parent 38bff2e42f
commit ef55d2cf7f
8 changed files with 240 additions and 3 deletions

View File

@@ -100,6 +100,27 @@ class Household
return $this->addresses;
}
/**
* @Serializer\Groups({ "read" })
* @Serializer\SerializedName("current_address")
*/
public function getCurrentAddress(\DateTime $at = null): ?Address
{
$at = $at === null ? new \DateTime('today') : $at;
$addrs = $this->getAddresses()->filter(function (Address $a) use ($at) {
return $a->getValidFrom() < $at && (
NULL === $a->getValidTo() || $at < $a->getValidTo()
);
});
if ($addrs->count() > 0) {
return $addrs->first();
} else {
return null;
}
}
/**
* @return Collection|HouseholdMember[]
*/
@@ -108,6 +129,10 @@ class Household
return $this->members;
}
/**
* @Serializer\Groups({ "read" })
* @Serializer\SerializedName("current_members")
*/
public function getCurrentMembers(?\DateTimeImmutable $now = null): Collection
{
$criteria = new Criteria();