Passed
Push — master ( ec327a...c19cb6 )
by Yannick
11:02
created

Version20250320213000   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getDescription() 0 3 1
A up() 0 54 1
A down() 0 4 1
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
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 Version20250320213000 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Creates tables for course and session catalogue visibility with access URL and usergroup restrictions.';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        $this->addSql('
22
            CREATE TABLE catalogue_course_rel_access_url_rel_usergroup (
23
                id INT AUTO_INCREMENT NOT NULL,
24
                course_id INT DEFAULT NULL,
25
                access_url_id INT DEFAULT NULL,
26
                usergroup_id INT DEFAULT NULL,
27
                INDEX IDX_37CC1F8E591CC992 (course_id),
28
                INDEX IDX_37CC1F8E73444FD5 (access_url_id),
29
                INDEX IDX_37CC1F8ED2112630 (usergroup_id),
30
                PRIMARY KEY(id)
31
            ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
32
        ');
33
34
        $this->addSql('
35
            CREATE TABLE catalogue_session_rel_access_url_rel_usergroup (
36
                id INT AUTO_INCREMENT NOT NULL,
37
                session_id INT DEFAULT NULL,
38
                access_url_id INT DEFAULT NULL,
39
                usergroup_id INT DEFAULT NULL,
40
                INDEX IDX_B143E63A613FECDF (session_id),
41
                INDEX IDX_B143E63A73444FD5 (access_url_id),
42
                INDEX IDX_B143E63AD2112630 (usergroup_id),
43
                PRIMARY KEY(id)
44
            ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;
45
        ');
46
47
        $this->addSql('
48
            ALTER TABLE catalogue_course_rel_access_url_rel_usergroup
49
            ADD CONSTRAINT FK_37CC1F8E591CC992 FOREIGN KEY (course_id) REFERENCES course (id) ON DELETE CASCADE;
50
        ');
51
52
        $this->addSql('
53
            ALTER TABLE catalogue_course_rel_access_url_rel_usergroup
54
            ADD CONSTRAINT FK_37CC1F8E73444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id) ON DELETE CASCADE;
55
        ');
56
57
        $this->addSql('
58
            ALTER TABLE catalogue_course_rel_access_url_rel_usergroup
59
            ADD CONSTRAINT FK_37CC1F8ED2112630 FOREIGN KEY (usergroup_id) REFERENCES usergroup (id) ON DELETE SET NULL;
60
        ');
61
62
        $this->addSql('
63
            ALTER TABLE catalogue_session_rel_access_url_rel_usergroup
64
            ADD CONSTRAINT FK_B143E63A613FECDF FOREIGN KEY (session_id) REFERENCES session (id) ON DELETE CASCADE;
65
        ');
66
67
        $this->addSql('
68
            ALTER TABLE catalogue_session_rel_access_url_rel_usergroup
69
            ADD CONSTRAINT FK_B143E63A73444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id) ON DELETE CASCADE;
70
        ');
71
72
        $this->addSql('
73
            ALTER TABLE catalogue_session_rel_access_url_rel_usergroup
74
            ADD CONSTRAINT FK_B143E63AD2112630 FOREIGN KEY (usergroup_id) REFERENCES usergroup (id) ON DELETE SET NULL;
75
        ');
76
    }
77
78
    public function down(Schema $schema): void
79
    {
80
        $this->addSql('DROP TABLE IF EXISTS catalogue_session_rel_access_url_rel_usergroup;');
81
        $this->addSql('DROP TABLE IF EXISTS catalogue_course_rel_access_url_rel_usergroup;');
82
    }
83
}
84