Completed
Push — master ( 8158f1...90d7fd )
by Konstantinos
11:17 queued 06:55
created

SupportFunMatches   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 3
c 2
b 0
f 1
lcom 0
cbo 3
dl 0
loc 47
ccs 20
cts 20
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B change() 0 44 3
1
<?php
2
3
use Phinx\Migration\AbstractMigration;
4
5
class SupportFunMatches extends AbstractMigration
6
{
7 1
    public function change()
8
    {
9
        $columnsToUpdate = array(
10 1
            'team_a' => 'Team 1 who played in this match',
11
            'team_b' => 'Team 2 who played in this match',
12
            'team_a_elo_new' => 'The new ELO for Team 1',
13
            'team_b_elo_new' => 'The new ELO for Team 2',
14
            'elo_diff' => 'The difference in ELO to Team 1'
15
        );
16
17 1
        $matches = $this->table('matches');
18 1
        $columns = $matches->getColumns();
19
20 1
        $matches->dropForeignKey(array('team_a', 'team_b'));
21
22 1
        foreach ($columns as $column)
23
        {
24 1
            if (in_array($column->getName(), array_keys($columnsToUpdate)))
25
            {
26 1
                $column->setOptions(array(
27 1
                    'null'    => true,
28 1
                    'signed'  => ($column->getName() == 'elo_diff'),
29 1
                    'comment' => $columnsToUpdate[$column->getName()]
30
                ));
31
32 1
                $matches->changeColumn($column->getName(), $column);
33
            }
34
        }
35
36 1
        $matches->addForeignKey('team_a', 'teams');
37 1
        $matches->addForeignKey('team_b', 'teams');
38
39 1
        $teamColorAssets = array('values'  => array('red', 'green', 'blue', 'purple'),
40
                                 'null'    => true,
41
                                 'comment' => 'The color of the team');
42
43 1
        $matches->addColumn('team_a_color', 'set', $teamColorAssets);
44 1
        $matches->addColumn('team_b_color', 'set', $teamColorAssets);
45 1
        $matches->addColumn('match_type', 'set', array('values' => array('official', 'fm', 'special'),
46
                                                       'null' => false,
47
                                                       'default' => 'official',
48
                                                       'comment' => 'The type of match that was played'));
49 1
        $matches->save();
50 1
    }
51
}
52