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

Version20250604052411_ExtractComputerSystemData   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 46
dl 0
loc 55
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getDescription() 0 3 1
A down() 0 15 1
A up() 0 29 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
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