Passed
Push — dependabot/npm_and_yarn/microm... ( e84ba6...f2f212 )
by
unknown
10:03
created

Version20240811221800::up()   D

Complexity

Conditions 10
Paths 512

Size

Total Lines 144
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 10
eloc 18
c 1
b 0
f 1
nc 512
nop 1
dl 0
loc 144
rs 4.1777

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
8
9
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
10
use Doctrine\DBAL\Schema\Schema;
11
12
final class Version20240811221800 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Migration for creating new tables corresponding to the entities c_blog, c_blog_attachment, c_blog_comment, c_blog_post, c_blog_rating, c_blog_rel_user, c_blog_task, c_blog_task_rel_user, and block.';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        // Create block table
22
        if (!$schema->hasTable('block')) {
23
            $this->addSql('
24
                CREATE TABLE block (
25
                    id INT AUTO_INCREMENT NOT NULL,
26
                    title VARCHAR(255) DEFAULT NULL,
27
                    description LONGTEXT DEFAULT NULL,
28
                    path VARCHAR(190) NOT NULL,
29
                    controller VARCHAR(100) NOT NULL,
30
                    active TINYINT(1) NOT NULL,
31
                    user_id INT DEFAULT NULL,
32
                    PRIMARY KEY(id),
33
                    UNIQUE KEY path (path),
34
                    CONSTRAINT FK_831B9722A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
35
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
36
            ');
37
        }
38
39
        // Create c_blog table
40
        if (!$schema->hasTable('c_blog')) {
41
            $this->addSql('
42
                CREATE TABLE c_blog (
43
                    iid INT AUTO_INCREMENT NOT NULL,
44
                    resource_node_id INT DEFAULT NULL,
45
                    title LONGTEXT NOT NULL,
46
                    blog_subtitle VARCHAR(250) DEFAULT NULL,
47
                    date_creation DATETIME NOT NULL,
48
                    PRIMARY KEY(iid),
49
                    UNIQUE INDEX UNIQ_64B00A121BAD783F (resource_node_id),
50
                    CONSTRAINT FK_64B00A121BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE
51
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
52
            ');
53
        }
54
55
        // Create c_blog_attachment table
56
        if (!$schema->hasTable('c_blog_attachment')) {
57
            $this->addSql('
58
                CREATE TABLE c_blog_attachment (
59
                    iid INT AUTO_INCREMENT NOT NULL,
60
                    path VARCHAR(255) NOT NULL,
61
                    comment LONGTEXT DEFAULT NULL,
62
                    size INT NOT NULL,
63
                    blog_id INT DEFAULT NULL,
64
                    filename VARCHAR(255) NOT NULL,
65
                    PRIMARY KEY(iid),
66
                    INDEX IDX_E769AADCDAE07E97 (blog_id),
67
                    CONSTRAINT FK_E769AADCDAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE
68
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
69
            ');
70
        }
71
72
        // Create c_blog_comment table
73
        if (!$schema->hasTable('c_blog_comment')) {
74
            $this->addSql('
75
                CREATE TABLE c_blog_comment (
76
                    iid INT AUTO_INCREMENT NOT NULL,
77
                    title VARCHAR(250) NOT NULL,
78
                    comment LONGTEXT NOT NULL,
79
                    author_id INT DEFAULT NULL,
80
                    date_creation DATETIME NOT NULL,
81
                    blog_id INT DEFAULT NULL,
82
                    PRIMARY KEY(iid),
83
                    INDEX IDX_CAA18F1F675F31B (author_id),
84
                    INDEX IDX_CAA18F1DAE07E97 (blog_id),
85
                    CONSTRAINT FK_CAA18F1F675F31B FOREIGN KEY (author_id) REFERENCES user (id) ON DELETE CASCADE,
86
                    CONSTRAINT FK_CAA18F1DAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE
87
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
88
            ');
89
        }
90
91
        // Create c_blog_post table
92
        if (!$schema->hasTable('c_blog_post')) {
93
            $this->addSql('
94
                CREATE TABLE c_blog_post (
95
                    iid INT AUTO_INCREMENT NOT NULL,
96
                    title VARCHAR(250) NOT NULL,
97
                    full_text LONGTEXT NOT NULL,
98
                    date_creation DATETIME NOT NULL,
99
                    author_id INT DEFAULT NULL,
100
                    blog_id INT DEFAULT NULL,
101
                    PRIMARY KEY(iid),
102
                    INDEX IDX_B6FD68A3F675F31B (author_id),
103
                    INDEX IDX_B6FD68A3DAE07E97 (blog_id),
104
                    CONSTRAINT FK_B6FD68A3F675F31B FOREIGN KEY (author_id) REFERENCES user (id) ON DELETE CASCADE,
105
                    CONSTRAINT FK_B6FD68A3DAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE
106
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
107
            ');
108
        }
109
110
        // Create c_blog_rating table
111
        if (!$schema->hasTable('c_blog_rating')) {
112
            $this->addSql('
113
                CREATE TABLE c_blog_rating (
114
                    iid INT AUTO_INCREMENT NOT NULL,
115
                    rating_type VARCHAR(40) NOT NULL,
116
                    user_id INT DEFAULT NULL,
117
                    blog_id INT DEFAULT NULL,
118
                    rating INT NOT NULL,
119
                    PRIMARY KEY(iid),
120
                    INDEX IDX_D4E30760DAE07E97 (blog_id),
121
                    INDEX IDX_D4E30760A76ED395 (user_id),
122
                    CONSTRAINT FK_D4E30760DAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE,
123
                    CONSTRAINT FK_D4E30760A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
124
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
125
            ');
126
        }
127
128
        // Create c_blog_rel_user table
129
        if (!$schema->hasTable('c_blog_rel_user')) {
130
            $this->addSql('
131
                CREATE TABLE c_blog_rel_user (
132
                    iid INT AUTO_INCREMENT NOT NULL,
133
                    user_id INT DEFAULT NULL,
134
                    blog_id INT DEFAULT NULL,
135
                    PRIMARY KEY(iid),
136
                    INDEX IDX_B55D851BDAE07E97 (blog_id),
137
                    INDEX IDX_B55D851BA76ED395 (user_id),
138
                    CONSTRAINT FK_B55D851BDAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE,
139
                    CONSTRAINT FK_B55D851BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
140
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
141
            ');
142
        }
143
144
        // Create c_blog_task table
145
        if (!$schema->hasTable('c_blog_task')) {
146
            $this->addSql('
147
                CREATE TABLE c_blog_task (
148
                    iid INT AUTO_INCREMENT NOT NULL,
149
                    title VARCHAR(250) NOT NULL,
150
                    description LONGTEXT NOT NULL,
151
                    color VARCHAR(10) NOT NULL,
152
                    blog_id INT DEFAULT NULL,
153
                    PRIMARY KEY(iid),
154
                    INDEX IDX_BE09DF0BDAE07E97 (blog_id),
155
                    CONSTRAINT FK_BE09DF0BDAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE
156
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
157
            ');
158
        }
159
160
        // Create c_blog_task_rel_user table
161
        if (!$schema->hasTable('c_blog_task_rel_user')) {
162
            $this->addSql('
163
                CREATE TABLE c_blog_task_rel_user (
164
                    iid INT AUTO_INCREMENT NOT NULL,
165
                    user_id INT DEFAULT NULL,
166
                    blog_id INT DEFAULT NULL,
167
                    task_id INT DEFAULT NULL,
168
                    target_date DATE NOT NULL,
169
                    PRIMARY KEY(iid),
170
                    INDEX IDX_FD8B3C73DAE07E97 (blog_id),
171
                    INDEX IDX_FD8B3C738DB60186 (task_id),
172
                    INDEX IDX_FD8B3C73A76ED395 (user_id),
173
                    CONSTRAINT FK_FD8B3C73DAE07E97 FOREIGN KEY (blog_id) REFERENCES c_blog (iid) ON DELETE CASCADE,
174
                    CONSTRAINT FK_FD8B3C738DB60186 FOREIGN KEY (task_id) REFERENCES c_blog_task (iid) ON DELETE CASCADE,
175
                    CONSTRAINT FK_FD8B3C73A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
176
                ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
177
            ');
178
        }
179
    }
180
181
    public function down(Schema $schema): void
182
    {
183
        $this->addSql('DROP TABLE IF EXISTS block;');
184
        $this->addSql('DROP TABLE IF EXISTS c_blog_attachment;');
185
        $this->addSql('DROP TABLE IF EXISTS c_blog_comment;');
186
        $this->addSql('DROP TABLE IF EXISTS c_blog_post;');
187
        $this->addSql('DROP TABLE IF EXISTS c_blog_rating;');
188
        $this->addSql('DROP TABLE IF EXISTS c_blog_rel_user;');
189
        $this->addSql('DROP TABLE IF EXISTS c_blog_task_rel_user;');
190
        $this->addSql('DROP TABLE IF EXISTS c_blog_task;');
191
        $this->addSql('DROP TABLE IF EXISTS c_blog;');
192
    }
193
}
194