diff --git a/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php b/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php index 891a0f461..132dc1172 100644 --- a/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php +++ b/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php @@ -32,8 +32,6 @@ class AccompanyingCourseApiController extends ApiController private Registry $registry; - private AccompanyingPeriodACLAwareRepository $accompanyingPeriodACLAwareRepository; - public function __construct( EventDispatcherInterface $eventDispatcher, ValidatorInterface $validator, diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelationships.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelationships.php index e69de29bb..cfabde912 100644 --- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelationships.php +++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelationships.php @@ -0,0 +1,22 @@ + [ '_entity' => [ 'methods' => [ - Request::METHOD_GET => true, - Request::METHOD_HEAD => true, Request::METHOD_POST => true, Request::METHOD_PATCH => true ], 'roles' => [ - Request::METHOD_GET => 'ROLE_USER', - Request::METHOD_HEAD => 'ROLE_USER', Request::METHOD_POST => 'ROLE_USER', Request::METHOD_PATCH => 'ROLE_USER' ] diff --git a/src/Bundle/ChillPersonBundle/Entity/Relationships/Relation.php b/src/Bundle/ChillPersonBundle/Entity/Relationships/Relation.php index 7cd000dd5..a0fefc877 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Relationships/Relation.php +++ b/src/Bundle/ChillPersonBundle/Entity/Relationships/Relation.php @@ -3,10 +3,16 @@ namespace Chill\PersonBundle\Entity\Relationships; use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\DiscriminatorColumn; +use Symfony\Component\Serializer\Annotation\DiscriminatorMap; +use Symfony\Component\Serializer\Annotation as Serializer; /** * @ORM\Entity() * @ORM\Table(name="chill_person_relations") + * @DiscriminatorMap(typeProperty="type", mapping={ + * "relation"=Relation::class + * }) */ class Relation { @@ -15,17 +21,19 @@ class Relation * @ORM\GeneratedValue * @ORM\Column(type="integer") */ - private $id; + private ?int $id = null; /** * @ORM\Column(type="json", nullable=true) + * @Serializer\Groups({"read"}) */ - private $title = []; + private array $title = []; /** * @ORM\Column(type="json", nullable=true) + * @Serializer\Groups({"read"}) */ - private $reverseTitle = []; + private array $reverseTitle = []; public function getId(): ?int { @@ -55,4 +63,4 @@ class Relation return $this; } -} +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php b/src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php index e748f9797..54be21140 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php +++ b/src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php @@ -2,50 +2,60 @@ namespace Chill\PersonBundle\Entity\Relationships; +use Chill\MainBundle\Doctrine\Model\TrackCreationInterface; +use Chill\MainBundle\Doctrine\Model\TrackUpdateInterface; use Chill\MainBundle\Entity\User; use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Relationships\Relation; +use DateTimeImmutable; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; -use Symfony\Component\Serializer\Annotation\Groups; +use Symfony\Component\Serializer\Annotation\DiscriminatorMap; +use Doctrine\ORM\Mapping\DiscriminatorColumn; +use Symfony\Component\Serializer\Annotation as Serializer; /** * @ORM\Entity() * @ORM\Table(name="chill_person_relationships") + * @DiscriminatorColumn(name="relation_id", type="integer") + * @DiscriminatorMap(typeProperty="type", mapping={ + * "relationship"=Relationship::class + * }) + * */ -class Relationship +class Relationship implements TrackCreationInterface, TrackUpdateInterface { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") - * @Groups({"read"}) + * @Serializer\Groups({"read"}) */ - private $id; + private ?int $id = null; /** * @ORM\ManyToOne(targetEntity=Person::class) * @ORM\JoinColumn(nullable=false) - * @Assert\NotBlank() - * @Groups({"read", "write"}) + * @Assert\NotNull() + * @Serializer\Groups({"read", "write"}) */ - private $fromPerson; + private ?Person $fromPerson = null; /** * @ORM\ManyToOne(targetEntity=Person::class) * @ORM\JoinColumn(nullable=false) - * @Assert\NotBlank() - * @Groups({"read", "write"}) + * @Assert\NotNull() + * @Serializer\Groups({"read", "write"}) */ - private $toPerson; + private ?Person $toPerson = null; /** * @ORM\ManyToOne(targetEntity=Relation::class) * @ORM\JoinColumn(nullable=false, name="relation_id", referencedColumnName="id") - * @Assert\NotBlank() - * @Groups({"read", "write"}) + * @Assert\NotNull() + * @Serializer\Groups({"read", "write"}) */ - private $relation; + private ?Relation $relation = null; /** * @ORM\Column(type="boolean") @@ -53,30 +63,30 @@ class Relationship * type="bool", * message="This must be of type boolean" * ) - * @Groups({"read"}) + * @Serializer\Groups({"read", "write"}) */ - private $reverse; + private bool $reverse; /** * @ORM\ManyToOne(targetEntity=User::class) * @ORM\JoinColumn(nullable=false) */ - private $createdBy; + private ?User $createdBy = null; /** * @ORM\Column(type="datetime_immutable") */ - private $createdAt; + private ?DateTimeImmutable $createdAt = null; /** * @ORM\ManyToOne(targetEntity=User::class) */ - private $updatedBy; + private ?User $updatedBy = null; /** * @ORM\Column(type="datetime_immutable", nullable=true) */ - private $updatedAt; + private ?DateTimeImmutable $updatedAt = null; public function getId(): ?int @@ -125,9 +135,9 @@ class Relationship return $this->createdBy; } - public function setCreatedBy(?User $createdBy): self + public function setCreatedBy(?User $user): self { - $this->createdBy = $createdBy; + $this->createdBy = $user; return $this; } @@ -137,7 +147,7 @@ class Relationship return $this->createdAt; } - public function setCreatedAt(\DateTimeImmutable $createdAt): self + public function setCreatedAt(\DateTimeInterface $createdAt): self { $this->createdAt = $createdAt; @@ -161,7 +171,7 @@ class Relationship return $this->updatedAt; } - public function setUpdatedAt(?\DateTimeImmutable $updatedAt): self + public function setUpdatedAt(?\DateTimeInterface $updatedAt): self { $this->updatedAt = $updatedAt; @@ -179,4 +189,4 @@ class Relationship return $this; } -} +} \ No newline at end of file