Passed
Push — master ( d0c183...89bdb5 )
by Janko
13:17
created

Version20241024092428_TutorialRemake   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 30
rs 10
c 0
b 0
f 0
wmc 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Migrations\Pgsql;
6
7
use Override;
8
use Doctrine\DBAL\Schema\Schema;
9
use Doctrine\Migrations\AbstractMigration;
10
11
final class Version20241024092428_TutorialRemake extends AbstractMigration
12
{
13
    #[Override]
14
    public function getDescription(): string
15
    {
16
        return 'Add new entities for user tutorial remake.';
17
    }
18
19
    #[Override]
20
    public function up(Schema $schema): void
21
    {
22
        $this->addSql('CREATE TABLE stu_tutorial_step (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, module VARCHAR(50) NOT NULL, view VARCHAR(100) NOT NULL, next_step_id INT DEFAULT NULL, title TEXT DEFAULT NULL, text TEXT DEFAULT NULL, elementIds TEXT DEFAULT NULL, innerUpdate TEXT DEFAULT NULL, fallbackIndex INT DEFAULT NULL, PRIMARY KEY(id))');
23
        $this->addSql('CREATE INDEX tutorial_view_idx ON stu_tutorial_step (module, view)');
24
        $this->addSql('CREATE TABLE stu_user_tutorial (user_id INT NOT NULL, tutorial_step_id INT NOT NULL, PRIMARY KEY(user_id, tutorial_step_id))');
25
        $this->addSql('CREATE INDEX IDX_9840DDF3A76ED395 ON stu_user_tutorial (user_id)');
26
        $this->addSql('CREATE INDEX IDX_9840DDF3D356979 ON stu_user_tutorial (tutorial_step_id)');
27
        $this->addSql('CREATE UNIQUE INDEX UNIQ_82D9BF6BB13C343E ON stu_tutorial_step (next_step_id)');
28
        $this->addSql('ALTER TABLE stu_user_tutorial ADD CONSTRAINT FK_9840DDF3A76ED395 FOREIGN KEY (user_id) REFERENCES stu_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
29
        $this->addSql('ALTER TABLE stu_user_tutorial ADD CONSTRAINT FK_9840DDF3D356979 FOREIGN KEY (tutorial_step_id) REFERENCES stu_tutorial_step (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
30
        $this->addSql('ALTER TABLE stu_tutorial_step ADD CONSTRAINT FK_82D9BF6BB13C343E FOREIGN KEY (next_step_id) REFERENCES stu_tutorial_step (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
31
    }
32
33
    #[Override]
34
    public function down(Schema $schema): void
35
    {
36
        $this->addSql('ALTER TABLE stu_user_tutorial DROP CONSTRAINT FK_9840DDF3A76ED395');
37
        $this->addSql('ALTER TABLE stu_user_tutorial DROP CONSTRAINT FK_9840DDF3D356979');
38
        $this->addSql('ALTER TABLE stu_tutorial_step DROP CONSTRAINT FK_82D9BF6BB13C343E');
39
        $this->addSql('DROP TABLE stu_tutorial_step');
40
        $this->addSql('DROP TABLE stu_user_tutorial');
41
    }
42
}
43