Add an owner to a release

NOT the artist·s but the user who own this release on this instance.
This commit is contained in:
dece 2023-10-01 13:28:47 +02:00
parent 4bc44971a2
commit 3e86499e10
2 changed files with 52 additions and 0 deletions

View file

@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20231001110934 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->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');
}
}

View file

@ -21,6 +21,10 @@ class Release
#[ORM\ManyToMany(targetEntity: Artist::class, inversedBy: 'releases')] #[ORM\ManyToMany(targetEntity: Artist::class, inversedBy: 'releases')]
private Collection $artists; private Collection $artists;
#[ORM\ManyToOne(inversedBy: 'releases')]
#[ORM\JoinColumn(nullable: false)]
private ?User $owner = null;
public function __construct() public function __construct()
{ {
$this->artists = new ArrayCollection(); $this->artists = new ArrayCollection();
@ -66,4 +70,16 @@ class Release
return $this; return $this;
} }
public function getOwner(): ?User
{
return $this->owner;
}
public function setOwner(?User $owner): static
{
$this->owner = $owner;
return $this;
}
} }