From 3e86499e10214b5a12c4ba748d69e387f8b075b7 Mon Sep 17 00:00:00 2001 From: dece Date: Sun, 1 Oct 2023 13:28:47 +0200 Subject: [PATCH] Add an owner to a release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NOT the artist·s but the user who own this release on this instance. --- migrations/Version20231001110934.php | 36 ++++++++++++++++++++++++++++ src/Entity/Release.php | 16 +++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 migrations/Version20231001110934.php diff --git a/migrations/Version20231001110934.php b/migrations/Version20231001110934.php new file mode 100644 index 0000000..3e2b772 --- /dev/null +++ b/migrations/Version20231001110934.php @@ -0,0 +1,36 @@ +addSql('ALTER TABLE release ADD owner_id INT NOT NULL'); + $this->addSql('ALTER TABLE release ADD CONSTRAINT FK_9E47031D7E3C61F9 FOREIGN KEY (owner_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('CREATE INDEX IDX_9E47031D7E3C61F9 ON release (owner_id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE release DROP CONSTRAINT FK_9E47031D7E3C61F9'); + $this->addSql('DROP INDEX IDX_9E47031D7E3C61F9'); + $this->addSql('ALTER TABLE release DROP owner_id'); + } +} diff --git a/src/Entity/Release.php b/src/Entity/Release.php index a43f664..9cf730e 100644 --- a/src/Entity/Release.php +++ b/src/Entity/Release.php @@ -21,6 +21,10 @@ class Release #[ORM\ManyToMany(targetEntity: Artist::class, inversedBy: 'releases')] private Collection $artists; + #[ORM\ManyToOne(inversedBy: 'releases')] + #[ORM\JoinColumn(nullable: false)] + private ?User $owner = null; + public function __construct() { $this->artists = new ArrayCollection(); @@ -66,4 +70,16 @@ class Release return $this; } + + public function getOwner(): ?User + { + return $this->owner; + } + + public function setOwner(?User $owner): static + { + $this->owner = $owner; + + return $this; + } }