Link between address and reference, and api endpoint to find household

by address reference

* add a one-to-many link between address and address reference;
* update AddAddress.vue to add information on picked address reference;
* add an HouseholdACLAwareRepository, with a method to find household by
current address reference
* add an endpoint to retrieve household by address reference
* + tests
This commit is contained in:
2021-09-29 23:55:54 +02:00
parent 6430de94a7
commit 05b2b2f9b8
12 changed files with 365 additions and 21 deletions

View File

@@ -23,7 +23,7 @@ class Address
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @groups({"write"})
* @Groups({"write"})
*/
private $id;
@@ -31,7 +31,7 @@ class Address
* @var string
*
* @ORM\Column(type="string", length=255)
* @groups({"write"})
* @Groups({"write"})
*/
private $street = '';
@@ -39,7 +39,7 @@ class Address
* @var string
*
* @ORM\Column(type="string", length=255)
* @groups({"write"})
* @Groups({"write"})
*/
private $streetNumber = '';
@@ -47,7 +47,7 @@ class Address
* @var PostalCode
*
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\PostalCode")
* @groups({"write"})
* @Groups({"write"})
*/
private $postcode;
@@ -55,7 +55,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=16, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $floor;
@@ -63,7 +63,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=16, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $corridor;
@@ -71,7 +71,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=16, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $steps;
@@ -79,7 +79,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $buildingName;
@@ -87,7 +87,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=16, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $flat;
@@ -95,7 +95,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $distribution;
@@ -103,7 +103,7 @@ class Address
* @var string|null
*
* @ORM\Column(type="string", length=255, nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $extra;
@@ -114,7 +114,7 @@ class Address
* @var \DateTime
*
* @ORM\Column(type="date")
* @groups({"write"})
* @Groups({"write"})
*/
private \DateTime $validFrom;
@@ -125,13 +125,13 @@ class Address
* @var \DateTime|null
*
* @ORM\Column(type="date", nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private ?\DateTime $validTo = null;
/**
* True if the address is a "no address", aka homeless person, ...
* @groups({"write"})
* @Groups({"write"})
* @ORM\Column(type="boolean")
*
* @var bool
@@ -144,7 +144,7 @@ class Address
* @var Point|null
*
* @ORM\Column(type="point", nullable=true)
* @groups({"write"})
* @Groups({"write"})
*/
private $point;
@@ -154,7 +154,7 @@ class Address
* @var ThirdParty|null
*
* @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty")
* @groups({"write"})
* @Groups({"write"})
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $linkedToThirdParty;
@@ -166,6 +166,12 @@ class Address
*/
private $customs = [];
/**
* @ORM\ManyToOne(targetEntity=AddressReference::class)
* @Groups({"write"})
*/
private ?AddressReference $addressReference = null;
public function __construct()
{
$this->validFrom = new \DateTime();
@@ -376,6 +382,7 @@ class Address
public static function createFromAddress(Address $original) : Address
{
return (new Address())
->setAddressReference($original->getAddressReference())
->setBuildingName($original->getBuildingName())
->setCorridor($original->getCorridor())
->setCustoms($original->getCustoms())
@@ -402,6 +409,7 @@ class Address
->setPostcode($original->getPostcode())
->setStreet($original->getStreet())
->setStreetNumber($original->getStreetNumber())
->setAddressReference($original)
;
}
@@ -549,5 +557,22 @@ class Address
return $this;
}
/**
* @return AddressReference|null
*/
public function getAddressReference(): ?AddressReference
{
return $this->addressReference;
}
/**
* @param AddressReference|null $addressReference
* @return Address
*/
public function setAddressReference(?AddressReference $addressReference = null): Address
{
$this->addressReference = $addressReference;
return $this;
}
}