Passed
Pull Request — master (#2146)
by Nico
35:16 queued 24:41
created

Version20250618185937_PIRATEROUND   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 32
dl 0
loc 41
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A up() 0 18 1
A down() 0 12 1
A getDescription() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Migrations\Pgsql;
6
7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\Migrations\AbstractMigration;
9
10
11
final class Version20250618185937_PIRATEROUND extends AbstractMigration
12
{
13
    public function getDescription(): string
14
    {
15
        return 'Adds Pirate Round tables';
16
    }
17
18
    public function up(Schema $schema): void
19
    {
20
        $this->addSql(<<<'SQL'
21
            CREATE TABLE stu_pirate_round (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, start INT NOT NULL, end_time INT DEFAULT NULL, max_prestige INT NOT NULL, actual_prestige INT NOT NULL, faction_winner INT DEFAULT NULL, PRIMARY KEY(id))
22
        SQL);
23
        $this->addSql(<<<'SQL'
24
            CREATE TABLE stu_user_pirate_round (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, user_id INT NOT NULL, pirate_round_id INT NOT NULL, destroyed_ships INT NOT NULL, prestige INT NOT NULL, PRIMARY KEY(id))
25
        SQL);
26
        $this->addSql(<<<'SQL'
27
            CREATE INDEX IDX_3CECD0A8A76ED395 ON stu_user_pirate_round (user_id)
28
        SQL);
29
        $this->addSql(<<<'SQL'
30
            CREATE INDEX IDX_3CECD0A88DA7A3A1 ON stu_user_pirate_round (pirate_round_id)
31
        SQL);
32
        $this->addSql(<<<'SQL'
33
            ALTER TABLE stu_user_pirate_round ADD CONSTRAINT FK_3CECD0A8A76ED395 FOREIGN KEY (user_id) REFERENCES stu_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
34
        SQL);
35
        $this->addSql(<<<'SQL'
36
            ALTER TABLE stu_user_pirate_round ADD CONSTRAINT FK_3CECD0A88DA7A3A1 FOREIGN KEY (pirate_round_id) REFERENCES stu_pirate_round (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
37
        SQL);
38
    }
39
40
    public function down(Schema $schema): void
41
    {
42
        $this->addSql(<<<'SQL'
43
            ALTER TABLE stu_user_pirate_round DROP CONSTRAINT FK_3CECD0A8A76ED395
44
        SQL);
45
        $this->addSql(<<<'SQL'
46
            ALTER TABLE stu_user_pirate_round DROP CONSTRAINT FK_3CECD0A88DA7A3A1
47
        SQL);
48
        $this->addSql(<<<'SQL'
49
            DROP TABLE stu_pirate_round
50
        SQL);
51
        $this->addSql(<<<'SQL'
52
            DROP TABLE stu_user_pirate_round
53
        SQL);
54
    }
55
}
56