feat: update Connector entity

This commit is contained in:
Maël Gangloff 2024-07-28 23:05:41 +02:00
parent 755803c6db
commit 15b2068d9e
No known key found for this signature in database
GPG Key ID: 11FDC81C24A7F629
3 changed files with 31 additions and 8 deletions

View File

@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/** /**
* Auto-generated Migration: Please modify to your needs! * Auto-generated Migration: Please modify to your needs!
*/ */
final class Version20240728191337 extends AbstractMigration final class Version20240728210044 extends AbstractMigration
{ {
public function getDescription(): string public function getDescription(): string
{ {
@ -20,7 +20,8 @@ final class Version20240728191337 extends AbstractMigration
public function up(Schema $schema): void public function up(Schema $schema): void
{ {
// this up() migration is auto-generated, please modify it to your needs // this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE TABLE connector (provider VARCHAR(255) NOT NULL, user_id INT NOT NULL, auth_data JSON NOT NULL, PRIMARY KEY(provider, user_id))'); $this->addSql('CREATE SEQUENCE connector_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE TABLE connector (id INT NOT NULL, user_id INT NOT NULL, auth_data JSON NOT NULL, provider VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_148C456EA76ED395 ON connector (user_id)'); $this->addSql('CREATE INDEX IDX_148C456EA76ED395 ON connector (user_id)');
$this->addSql('ALTER TABLE connector ADD CONSTRAINT FK_148C456EA76ED395 FOREIGN KEY (user_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE connector ADD CONSTRAINT FK_148C456EA76ED395 FOREIGN KEY (user_id) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
} }
@ -29,6 +30,7 @@ final class Version20240728191337 extends AbstractMigration
{ {
// this down() migration is auto-generated, please modify it to your needs // this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public'); $this->addSql('CREATE SCHEMA public');
$this->addSql('DROP SEQUENCE connector_id_seq CASCADE');
$this->addSql('ALTER TABLE connector DROP CONSTRAINT FK_148C456EA76ED395'); $this->addSql('ALTER TABLE connector DROP CONSTRAINT FK_148C456EA76ED395');
$this->addSql('DROP TABLE connector'); $this->addSql('DROP TABLE connector');
} }

View File

@ -4,17 +4,24 @@ namespace App\Entity;
use App\Config\ConnectorProvider; use App\Config\ConnectorProvider;
use App\Repository\ConnectorRepository; use App\Repository\ConnectorRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\DiscriminatorColumn;
use Doctrine\ORM\Mapping\DiscriminatorMap;
use Doctrine\ORM\Mapping\InheritanceType;
#[ORM\Entity(repositoryClass: ConnectorRepository::class)] #[ORM\Entity(repositoryClass: ConnectorRepository::class)]
#[InheritanceType('SINGLE_TABLE')]
#[DiscriminatorColumn(name: 'provider', enumType: ConnectorProvider::class)]
#[DiscriminatorMap([ConnectorProvider::OVH->value => OVHConnector::class])]
class Connector class Connector
{ {
#[ORM\Id] #[ORM\Id]
#[ORM\Column(enumType: ConnectorProvider::class)] #[ORM\GeneratedValue]
private ?ConnectorProvider $provider = null; #[ORM\Column]
private ?int $id = null;
private ?string $provider = null;
#[ORM\Id]
#[ORM\ManyToOne(inversedBy: 'connectors')] #[ORM\ManyToOne(inversedBy: 'connectors')]
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?User $user = null; private ?User $user = null;
@ -22,13 +29,17 @@ class Connector
#[ORM\Column] #[ORM\Column]
private array $authData = []; private array $authData = [];
public function getId(): ?int
{
return $this->id;
}
public function getProvider(): ?ConnectorProvider public function getProvider(): ?string
{ {
return $this->provider; return $this->provider;
} }
public function setProvider(ConnectorProvider $provider): static public function setProvider(?string $provider): static
{ {
$this->provider = $provider; $this->provider = $provider;

View File

@ -0,0 +1,10 @@
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping\Entity;
#[Entity]
class OVHConnector extends Connector
{
}