Passed
Push — master ( 8e22a2...c36d68 )
by Yannick
08:03
created

Version20250310214200   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A down() 0 5 1
A getDescription() 0 3 1
A up() 0 53 1
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 Version20250310214200 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Creates tables conference_meeting, conference_recording, and conference_activity.';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        $this->addSql("
22
            CREATE TABLE conference_meeting (
23
                id INT AUTO_INCREMENT NOT NULL,
24
                c_id INT DEFAULT NULL,
25
                session_id INT DEFAULT NULL,
26
                access_url_id INT DEFAULT NULL,
27
                group_id INT DEFAULT NULL,
28
                user_id INT DEFAULT NULL,
29
                calendar_id INT DEFAULT NULL,
30
                service_provider VARCHAR(20) NOT NULL,
31
                remote_id VARCHAR(255) DEFAULT NULL,
32
                internal_meeting_id VARCHAR(255) DEFAULT NULL,
33
                title VARCHAR(255) NOT NULL,
34
                attendee_pw VARCHAR(255) DEFAULT NULL,
35
                moderator_pw VARCHAR(255) DEFAULT NULL,
36
                record TINYINT(1) NOT NULL DEFAULT 0,
37
                status INT NOT NULL DEFAULT 0,
38
                welcome_msg TEXT DEFAULT NULL,
39
                visibility INT NOT NULL DEFAULT 1,
40
                voice_bridge INT DEFAULT NULL,
41
                video_url VARCHAR(255) DEFAULT NULL,
42
                has_video_m4v TINYINT(1) NOT NULL DEFAULT 0,
43
                created_at DATETIME NOT NULL,
44
                closed_at DATETIME DEFAULT NULL,
45
                meeting_list_item TEXT DEFAULT NULL,
46
                meeting_info_get TEXT DEFAULT NULL,
47
                sign_attendance TINYINT(1) NOT NULL DEFAULT 0,
48
                reason_to_sign_attendance TEXT DEFAULT NULL,
49
                account_email VARCHAR(255) DEFAULT NULL,
50
                webinar_schema TEXT DEFAULT NULL,
51
                PRIMARY KEY(id),
52
                CONSTRAINT FK_EE87E8191D79BD3 FOREIGN KEY (c_id) REFERENCES course (id) ON DELETE CASCADE,
53
                CONSTRAINT FK_EE87E81613FECDF FOREIGN KEY (session_id) REFERENCES session (id) ON DELETE CASCADE,
54
                CONSTRAINT FK_EE87E8173444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id) ON DELETE CASCADE,
55
                CONSTRAINT FK_EE87E81FE54D947 FOREIGN KEY (group_id) REFERENCES c_group_info (iid) ON DELETE CASCADE,
56
                CONSTRAINT FK_EE87E81A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
57
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
58
        ");
59
60
        $this->addSql("
61
            CREATE TABLE conference_recording (
62
                id INT AUTO_INCREMENT NOT NULL,
63
                meeting_id INT NOT NULL,
64
                format_type VARCHAR(50) NOT NULL,
65
                resource_url TEXT NOT NULL,
66
                PRIMARY KEY(id),
67
                CONSTRAINT FK_F7FF7ACB67433D9C FOREIGN KEY (meeting_id) REFERENCES conference_meeting (id) ON DELETE CASCADE
68
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
69
        ");
70
71
        $this->addSql("
72
            CREATE TABLE conference_activity (
73
                id INT AUTO_INCREMENT NOT NULL,
74
                meeting_id INT NOT NULL,
75
                participant_id INT NOT NULL,
76
                in_at DATETIME DEFAULT NULL,
77
                out_at DATETIME DEFAULT NULL,
78
                close TINYINT(1) NOT NULL DEFAULT 0,
79
                type VARCHAR(50) NOT NULL,
80
                event VARCHAR(255) NOT NULL,
81
                activity_data LONGTEXT DEFAULT NULL,
82
                signature_file VARCHAR(255) DEFAULT NULL,
83
                signed_at DATETIME DEFAULT NULL,
84
                PRIMARY KEY(id),
85
                CONSTRAINT FK_6935CF7B67433D9C FOREIGN KEY (meeting_id) REFERENCES conference_meeting (id) ON DELETE CASCADE,
86
                CONSTRAINT FK_6935CF7B9D1C3019 FOREIGN KEY (participant_id) REFERENCES user (id) ON DELETE CASCADE
87
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
88
        ");
89
    }
90
91
    public function down(Schema $schema): void
92
    {
93
        $this->addSql("DROP TABLE IF EXISTS conference_activity;");
94
        $this->addSql("DROP TABLE IF EXISTS conference_recording;");
95
        $this->addSql("DROP TABLE IF EXISTS conference_meeting;");
96
    }
97
}
98