|
4 | 4 |
|
5 | 5 | -- Generic tables |
6 | 6 |
|
7 | | -CREATE TABLE `mutations` ( |
8 | | - `id` BIGINT AUTO_INCREMENT PRIMARY KEY, |
9 | | - `table_name` VARCHAR(255) NOT NULL, |
10 | | - `operation` ENUM ('INSERT', 'UPDATE', 'DELETE') NOT NULL, |
11 | | - `old_value` JSON NULL, |
12 | | - `new_value` JSON NULL, |
13 | | - `mutation_timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| 7 | +CREATE TABLE mutations ( |
| 8 | + id BIGINT AUTO_INCREMENT PRIMARY KEY, |
| 9 | + table_name VARCHAR(255) NOT NULL, |
| 10 | + operation ENUM ('INSERT', 'UPDATE', 'DELETE') NOT NULL, |
| 11 | + old_value JSON NULL, |
| 12 | + new_value JSON NULL, |
| 13 | + mutation_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
14 | 14 | ) ENGINE = InnoDB |
15 | 15 | DEFAULT CHARSET = utf8mb4 |
16 | 16 | COLLATE = utf8mb4_unicode_ci; |
17 | 17 |
|
18 | | -CREATE TABLE `domain_events` ( |
19 | | - `id` CHAR(36) NOT NULL, |
20 | | - `aggregate_id` CHAR(36) NOT NULL, |
21 | | - `name` VARCHAR(255) NOT NULL, |
22 | | - `body` JSON NOT NULL, |
23 | | - `occurred_on` TIMESTAMP NOT NULL, |
24 | | - PRIMARY KEY (`id`) |
| 18 | +CREATE TABLE domain_events ( |
| 19 | + id CHAR(36) NOT NULL, |
| 20 | + aggregate_id CHAR(36) NOT NULL, |
| 21 | + name VARCHAR(255) NOT NULL, |
| 22 | + body JSON NOT NULL, |
| 23 | + occurred_on TIMESTAMP NOT NULL, |
| 24 | + PRIMARY KEY (id) |
25 | 25 | ) ENGINE = InnoDB |
26 | 26 | DEFAULT CHARSET = utf8mb4 |
27 | 27 | COLLATE = utf8mb4_unicode_ci; |
28 | 28 |
|
29 | 29 | -- Aggregates tables |
30 | 30 |
|
31 | | -CREATE TABLE `courses` ( |
32 | | - `id` CHAR(36) NOT NULL, |
33 | | - `name` VARCHAR(255) NOT NULL, |
34 | | - `duration` VARCHAR(255) NOT NULL, |
35 | | - PRIMARY KEY (`id`) |
| 31 | +CREATE TABLE courses ( |
| 32 | + id CHAR(36) NOT NULL, |
| 33 | + name VARCHAR(255) NOT NULL, |
| 34 | + duration VARCHAR(255) NOT NULL, |
| 35 | + PRIMARY KEY (id) |
36 | 36 | ) ENGINE = InnoDB |
37 | 37 | DEFAULT CHARSET = utf8mb4 |
38 | 38 | COLLATE = utf8mb4_unicode_ci; |
@@ -68,28 +68,62 @@ BEGIN |
68 | 68 | VALUES ('courses', 'DELETE', JSON_OBJECT('id', old.id, 'name', old.name, 'duration', old.duration), NOW()); |
69 | 69 | END; |
70 | 70 |
|
71 | | -CREATE TABLE `courses_counter` ( |
72 | | - `id` CHAR(36) NOT NULL, |
73 | | - `total` INT NOT NULL, |
74 | | - `existing_courses` JSON NOT NULL, |
75 | | - PRIMARY KEY (`id`) |
| 71 | +CREATE TABLE courses_counter ( |
| 72 | + id CHAR(36) NOT NULL, |
| 73 | + total INT NOT NULL, |
| 74 | + existing_courses JSON NOT NULL, |
| 75 | + PRIMARY KEY (id) |
76 | 76 | ) ENGINE = InnoDB |
77 | 77 | DEFAULT CHARSET = utf8mb4 |
78 | 78 | COLLATE = utf8mb4_unicode_ci; |
79 | 79 |
|
80 | | -INSERT INTO `courses_counter` |
| 80 | +INSERT INTO courses_counter (id, total, existing_courses) |
81 | 81 | VALUES ("cdf26d7d-3deb-4e8c-9f73-4ac085a8d6f3", 0, "[]"); |
82 | 82 |
|
| 83 | +CREATE TABLE steps ( |
| 84 | + id CHAR(36) NOT NULL, |
| 85 | + title VARCHAR(255) NOT NULL, |
| 86 | + duration INT NOT NULL, |
| 87 | + type VARCHAR(255) NOT NULL, |
| 88 | + PRIMARY KEY (id) |
| 89 | +) ENGINE = InnoDB |
| 90 | + DEFAULT CHARSET = utf8mb4 |
| 91 | + COLLATE = utf8mb4_unicode_ci; |
| 92 | + |
| 93 | +CREATE TABLE steps_video ( |
| 94 | + id CHAR(36) NOT NULL, |
| 95 | + url VARCHAR(255) NOT NULL, |
| 96 | + FOREIGN KEY (id) REFERENCES steps(id) ON DELETE CASCADE |
| 97 | +) ENGINE = InnoDB |
| 98 | + DEFAULT CHARSET = utf8mb4 |
| 99 | + COLLATE = utf8mb4_unicode_ci; |
| 100 | + |
| 101 | +CREATE TABLE steps_exercise ( |
| 102 | + id CHAR(36) NOT NULL, |
| 103 | + content VARCHAR(255) NOT NULL, |
| 104 | + FOREIGN KEY (id) REFERENCES steps(id) ON DELETE CASCADE |
| 105 | +) ENGINE = InnoDB |
| 106 | + DEFAULT CHARSET = utf8mb4 |
| 107 | + COLLATE = utf8mb4_unicode_ci; |
| 108 | + |
| 109 | +CREATE TABLE steps_quiz ( |
| 110 | + id CHAR(36) NOT NULL, |
| 111 | + questions TEXT NOT NULL, |
| 112 | + FOREIGN KEY (id) REFERENCES steps(id) ON DELETE CASCADE |
| 113 | +) ENGINE = InnoDB |
| 114 | + DEFAULT CHARSET = utf8mb4 |
| 115 | + COLLATE = utf8mb4_unicode_ci; |
| 116 | + |
83 | 117 |
|
84 | 118 | /* ------------------------- |
85 | 119 | BACKOFFICE CONTEXT |
86 | 120 | ---------------------------- */ |
87 | 121 |
|
88 | | -CREATE TABLE `backoffice_courses` ( |
89 | | - `id` CHAR(36) NOT NULL, |
90 | | - `name` VARCHAR(255) NOT NULL, |
91 | | - `duration` VARCHAR(255) NOT NULL, |
92 | | - PRIMARY KEY (`id`) |
| 122 | +CREATE TABLE backoffice_courses ( |
| 123 | + id CHAR(36) NOT NULL, |
| 124 | + name VARCHAR(255) NOT NULL, |
| 125 | + duration VARCHAR(255) NOT NULL, |
| 126 | + PRIMARY KEY (id) |
93 | 127 | ) ENGINE = InnoDB |
94 | 128 | DEFAULT CHARSET = utf8mb4 |
95 | 129 | COLLATE = utf8mb4_unicode_ci; |
0 commit comments