Passed
Push — dev ( 3fd410...aa33df )
by Janko
13:32
created

up()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 29

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 29
nc 1
nop 1
dl 0
loc 29
rs 9.456
c 1
b 0
f 0
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
final class Version20250604052411_ExtractComputerSystemData extends AbstractMigration
11
{
12
    public function getDescription(): string
13
    {
14
        return 'Extracted computer specific variables from spacecraft entity to system data.';
15
    }
16
17
    public function up(Schema $schema): void
18
    {
19
        $this->addSql(<<<'SQL'
20
            UPDATE stu_spacecraft
21
            SET direction = 0
22
            WHERE direction IS NULL
23
        SQL);
24
        $this->addSql(<<<'SQL'
25
            UPDATE stu_spacecraft_system ss
26
            SET DATA = (
27
                SELECT '{"hitChance":' || s.hit_chance || ',"evadeChance":' || s.evade_chance || ',"isInEmergency":' || s.in_emergency || ',"flightDirection":' || s.direction || ',"alertState":' || s.alvl || '}'
28
                FROM stu_spacecraft s
29
                WHERE s.id = ss.spacecraft_id
30
            )
31
            WHERE ss.system_type = 4
32
        SQL);
33
        $this->addSql(<<<'SQL'
34
            ALTER TABLE stu_spacecraft DROP direction
35
        SQL);
36
        $this->addSql(<<<'SQL'
37
            ALTER TABLE stu_spacecraft DROP alvl
38
        SQL);
39
        $this->addSql(<<<'SQL'
40
            ALTER TABLE stu_spacecraft DROP hit_chance
41
        SQL);
42
        $this->addSql(<<<'SQL'
43
            ALTER TABLE stu_spacecraft DROP evade_chance
44
        SQL);
45
        $this->addSql(<<<'SQL'
46
            ALTER TABLE stu_spacecraft DROP in_emergency
47
        SQL);
48
    }
49
50
    public function down(Schema $schema): void
51
    {
52
        $this->addSql(<<<'SQL'
53
            ALTER TABLE stu_spacecraft ADD direction SMALLINT DEFAULT NULL
54
        SQL);
55
        $this->addSql(<<<'SQL'
56
            ALTER TABLE stu_spacecraft ADD alvl SMALLINT NOT NULL
57
        SQL);
58
        $this->addSql(<<<'SQL'
59
            ALTER TABLE stu_spacecraft ADD hit_chance SMALLINT NOT NULL
60
        SQL);
61
        $this->addSql(<<<'SQL'
62
            ALTER TABLE stu_spacecraft ADD evade_chance SMALLINT NOT NULL
63
        SQL);
64
        $this->addSql(<<<'SQL'
65
            ALTER TABLE stu_spacecraft ADD in_emergency BOOLEAN NOT NULL
66
        SQL);
67
    }
68
}
69