Passed
Pull Request — master (#1918)
by Janko
25:50
created

Version20241024092428_TutorialRemake::up()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 1
dl 0
loc 11
ccs 0
cts 10
cp 0
crap 2
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Migrations;
6
7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\Migrations\AbstractMigration;
9
10
final class Version20241024092428_TutorialRemake extends AbstractMigration
11
{
12
    public function getDescription(): string
13
    {
14
        return 'Add new entities for user tutorial remake.';
15
    }
16
17
    public function up(Schema $schema): void
18
    {
19
        $this->addSql('CREATE TABLE stu_tutorial_step (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, module VARCHAR(50) NOT NULL, view VARCHAR(100) DEFAULT 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))');
20
        $this->addSql('CREATE INDEX tutorial_view_idx ON stu_tutorial_step (module, view)');
21
        $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))');
22
        $this->addSql('CREATE INDEX IDX_9840DDF3A76ED395 ON stu_user_tutorial (user_id)');
23
        $this->addSql('CREATE INDEX IDX_9840DDF3D356979 ON stu_user_tutorial (tutorial_step_id)');
24
        $this->addSql('CREATE UNIQUE INDEX UNIQ_82D9BF6BB13C343E ON stu_tutorial_step (next_step_id)');
25
        $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');
26
        $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');
27
        $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');
28
    }
29
30
    public function down(Schema $schema): void
31
    {
32
        $this->addSql('ALTER TABLE stu_user_tutorial DROP CONSTRAINT FK_9840DDF3A76ED395');
33
        $this->addSql('ALTER TABLE stu_user_tutorial DROP CONSTRAINT FK_9840DDF3D356979');
34
        $this->addSql('ALTER TABLE stu_tutorial_step DROP CONSTRAINT FK_82D9BF6BB13C343E');
35
        $this->addSql('DROP TABLE stu_tutorial_step');
36
        $this->addSql('DROP TABLE stu_user_tutorial');
37
    }
38
}
39