diff --git a/src/Bundle/ChillPersonBundle/Entity/Person.php b/src/Bundle/ChillPersonBundle/Entity/Person.php index 056efc388..1eaffa526 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Person.php +++ b/src/Bundle/ChillPersonBundle/Entity/Person.php @@ -23,9 +23,11 @@ namespace Chill\PersonBundle\Entity; */ use ArrayIterator; +use Chill\MainBundle\Doctrine\Model\TrackCreationInterface; +use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface; use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Entity\Country; -use Chill\MainBundle\Entity\Language; +use Chill\MainBundle\Entity\User; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\MaritalStatus; use Chill\PersonBundle\Entity\Household\HouseholdMember; @@ -54,7 +56,7 @@ use Symfony\Component\Serializer\Annotation\DiscriminatorMap; * "person"=Person::class * }) */ -class Person implements HasCenterInterface +class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateInterface { /** * The person's id @@ -297,6 +299,29 @@ class Person implements HasCenterInterface */ private ?int $numberOfChildren = null; + /** + * @ORM\ManyToOne(targetEntity=User::class) + * @ORM\JoinColumn(nullable=true) + */ + private $createdBy; + + /** + * @ORM\Column(type="datetime", nullable=true, options={"default": NULL}) + */ + private \DateTimeInterface $createdAt; + + /** + * @ORM\ManyToOne( + * targetEntity=User::class + * ) + */ + private User $updatedBy; + + /** + * @ORM\Column(type="datetime", nullable=true, options={"default": NULL}) + */ + private \DateTimeInterface $updatedAt; + /** * @var boolean * @deprecated @@ -1392,4 +1417,37 @@ class Person implements HasCenterInterface return $this; } + public function getCreatedBy(): ?User + { + return $this->createdBy; + } + + public function setCreatedBy(User $createdBy): self + { + $this->createdBy = $createdBy; + + return $this; + } + + public function setCreatedAt(\DateTimeInterface $datetime): self + { + $this->createdAt = $datetime; + + return $this; + } + + public function setUpdatedBy(User $user): self + { + $this->updatedBy = $user; + + return $this; + } + + public function setUpdatedAt(\DateTimeInterface $datetime): self + { + $this->updatedAt = $datetime; + + return $this; + } + } diff --git a/src/Bundle/ChillPersonBundle/migrations/Version20210618080702.php b/src/Bundle/ChillPersonBundle/migrations/Version20210618080702.php new file mode 100644 index 000000000..93c6b8bf0 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/migrations/Version20210618080702.php @@ -0,0 +1,45 @@ +addSql('ALTER TABLE chill_person_person ADD createdAt TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_person_person ADD updatedAt TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_person_person ADD createdBy_id INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_person_person ADD updatedBy_id INT DEFAULT NULL'); + $this->addSql('COMMENT ON COLUMN chill_person_person.deathdate IS \'(DC2Type:date_immutable)\''); + $this->addSql('ALTER TABLE chill_person_person ADD CONSTRAINT FK_BF210A143174800F FOREIGN KEY (createdBy_id) REFERENCES users (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_person_person ADD CONSTRAINT FK_BF210A1465FF1AEC FOREIGN KEY (updatedBy_id) REFERENCES users (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('CREATE INDEX IDX_BF210A143174800F ON chill_person_person (createdBy_id)'); + $this->addSql('CREATE INDEX IDX_BF210A1465FF1AEC ON chill_person_person (updatedBy_id)'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE chill_person_person DROP CONSTRAINT FK_BF210A143174800F'); + $this->addSql('ALTER TABLE chill_person_person DROP CONSTRAINT FK_BF210A1465FF1AEC'); + $this->addSql('DROP INDEX IDX_BF210A143174800F'); + $this->addSql('DROP INDEX IDX_BF210A1465FF1AEC'); + $this->addSql('ALTER TABLE chill_person_person DROP createdAt'); + $this->addSql('ALTER TABLE chill_person_person DROP updatedAt'); + $this->addSql('ALTER TABLE chill_person_person DROP createdBy_id'); + $this->addSql('ALTER TABLE chill_person_person DROP updatedBy_id'); + $this->addSql('COMMENT ON COLUMN chill_person_person.deathdate IS NULL'); + } +}