Feature: add columns into Address to track the matching with AddressReference

This commit is contained in:
2023-03-06 15:41:13 +01:00
parent efa475df0f
commit 8e0d144dd1
2 changed files with 69 additions and 2 deletions

View File

@@ -12,6 +12,10 @@ declare(strict_types=1);
namespace Chill\MainBundle\Entity;
use Chill\MainBundle\Doctrine\Model\Point;
use Chill\MainBundle\Doctrine\Model\TrackCreationInterface;
use Chill\MainBundle\Doctrine\Model\TrackCreationTrait;
use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface;
use Chill\MainBundle\Doctrine\Model\TrackUpdateTrait;
use Chill\ThirdPartyBundle\Entity\ThirdParty;
use DateTime;
use DateTimeInterface;
@@ -28,8 +32,28 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
* @ORM\Table(name="chill_main_address")
* @ORM\HasLifecycleCallbacks
*/
class Address
class Address implements TrackCreationInterface, TrackUpdateInterface
{
use TrackCreationTrait;
use TrackUpdateTrait;
/**
* When an Address does match with the AddressReference
*/
public const ADDR_REFERENCE_STATUS_MATCH = 'match';
/**
* When an Address does not match with the AddressReference, and
* is pending for a review
*/
public const ADDR_REFERENCE_STATUS_TO_REVIEW = 'to_review';
/**
* When an Address does not match with the AddressReference, but
* is reviewed
*/
public const ADDR_REFERENCE_STATUS_REVIEWED = 'reviewed';
/**
* @ORM\ManyToOne(targetEntity=AddressReference::class)
* @Groups({"write"})
@@ -42,7 +66,7 @@ class Address
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({"write"})
*/
private $buildingName;
private string $buildingName = '';
/**
* @ORM\Column(type="boolean")
@@ -165,6 +189,17 @@ class Address
*/
private ?PostalCode $postcode = null;
/**
* @var self::ADDR_REFERENCE_STATUS_*
* @ORM\Column(type="text", nullable=false, options={"default": self::ADDR_REFERENCE_STATUS_MATCH})
*/
private string $refStatus = self::ADDR_REFERENCE_STATUS_MATCH;
/**
* @ORM\Column(type="datetime_immutable", nullable=false, options={"default": "CURRENT_TIMESTAMP"})
*/
private \DateTimeImmutable $refStatusLastUpdate;
/**
* @var string|null
*
@@ -210,6 +245,7 @@ class Address
public function __construct()
{
$this->validFrom = new DateTime();
$this->refStatusLastUpdate = new \DateTimeImmutable('now');
$this->geographicalUnits = new ArrayCollection();
}