Projet

Général

Profil

US #1192 » base_reports_schema.sql

ahlem belgacem, 30/10/2025 14:50

 
1

    
2
use salarymarket ;
3
-- DROP TABLES
4
DROP TABLE IF EXISTS solution_report_criterias_charts;
5
DROP TABLE IF EXISTS solution_report_criterias_config;
6
DROP TABLE IF EXISTS solution_report_charts;
7
DROP TABLE IF EXISTS solution_report_criterias;
8
DROP TABLE IF EXISTS solution_reports_config_gaps;
9

    
10
-- 1️ solution_reports_config_gaps
11
CREATE TABLE solution_reports_config_gaps (
12
  subscription_code VARCHAR(255) NOT NULL,
13
  category ENUM('market', 'personalized') NOT NULL,
14
  gap BOOLEAN NOT NULL,
15
  PRIMARY KEY (subscription_code, category),
16
  FOREIGN KEY (subscription_code) REFERENCES solution_subscription(subscription_code)
17
    ON DELETE CASCADE ON UPDATE CASCADE
18
);
19

    
20
INSERT INTO solution_reports_config_gaps (subscription_code, category, gap) VALUES 
21
('essential', 'market', false),
22
('advanced', 'market', false),
23
('advanced', 'personalized', true),
24
('on_the_menu', 'market', false),
25
('on_the_menu', 'personalized', true);
26

    
27
-- 2️ solution_report_criterias
28
CREATE TABLE solution_report_criterias (
29
  id INT AUTO_INCREMENT PRIMARY KEY,
30
  subscription_code VARCHAR(255) NOT NULL,
31
  category ENUM('market', 'personalized') NOT NULL,
32
  report_criterias VARCHAR(255) NOT NULL,
33
  createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
34
  updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
35
  FOREIGN KEY (subscription_code, category)
36
    REFERENCES solution_reports_config_gaps(subscription_code, category)
37
    ON DELETE CASCADE ON UPDATE CASCADE,
38
  UNIQUE KEY unique_report_per_subscription (subscription_code, category, report_criterias)
39
);
40

    
41
INSERT INTO solution_report_criterias (subscription_code, category, report_criterias) VALUES
42
-- Essential / market
43
('essential', 'market', 'essential-grade'),
44
('essential', 'market', 'essential-collaborative_path'),
45
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path'),
46
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path-grade'),
47

    
48
-- On The Menu / market
49
('on_the_menu', 'market', 'on_the_menu-grade'),
50
('on_the_menu', 'market', 'on_the_menu-collaborative_path'),
51
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path'),
52
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade'),
53

    
54
-- On The Menu / personalized
55
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code'),
56
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path'),
57
('on_the_menu', 'personalized', 'on_the_menu-collaborative_path'),
58
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade'),
59

    
60
-- Advanced / market
61
('advanced', 'market', 'advanced-grade'),
62
('advanced', 'market', 'advanced-collaborative_path'),
63
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path'),
64
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path-grade'),
65

    
66
-- Advanced / personalized
67
('advanced', 'personalized', 'advanced-function_code-subfunction_code'),
68
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path'),
69
('advanced', 'personalized', 'advanced-collaborative_path'),
70
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade');
71

    
72
-- 3️ solution_report_criterias_config
73
CREATE TABLE solution_report_criterias_config (
74
  id INT AUTO_INCREMENT PRIMARY KEY,
75
  subscription_code VARCHAR(255) NOT NULL,
76
  category ENUM('market', 'personalized') NOT NULL,
77
  report_criterias VARCHAR(255) NOT NULL,
78
  criteria VARCHAR(255) NOT NULL,
79
  createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
80
  updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
81
  FOREIGN KEY (subscription_code, category, report_criterias)
82
    REFERENCES solution_report_criterias(subscription_code, category, report_criterias)
83
    ON DELETE CASCADE ON UPDATE CASCADE
84
);
85

    
86
INSERT INTO solution_report_criterias_config (subscription_code, category, report_criterias, criteria) VALUES
87
-- Essential / market
88
('essential', 'market', 'essential-grade', 'grade'),
89
('essential', 'market', 'essential-collaborative_path', 'collaborative_path'),
90
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path', 'function_code'),
91
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path', 'subfunction_code'),
92
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path', 'collaborative_path'),
93
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path-grade', 'function_code'),
94
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path-grade', 'subfunction_code'),
95
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path-grade', 'collaborative_path'),
96
('essential', 'market', 'essential-function_code-subfunction_code-collaborative_path-grade', 'grade'),
97

    
98
-- On The Menu / market
99
('on_the_menu', 'market', 'on_the_menu-grade', 'grade'),
100
('on_the_menu', 'market', 'on_the_menu-collaborative_path', 'collaborative_path'),
101
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'function_code'),
102
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'subfunction_code'),
103
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'collaborative_path'),
104
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'function_code'),
105
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'subfunction_code'),
106
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'collaborative_path'),
107
('on_the_menu', 'market', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'grade'),
108

    
109
-- On The Menu / personalized
110
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code', 'function_code'),
111
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code', 'subfunction_code'),
112
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'function_code'),
113
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'subfunction_code'),
114
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'collaborative_path'),
115
('on_the_menu', 'personalized', 'on_the_menu-collaborative_path', 'collaborative_path'),
116
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'function_code'),
117
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'subfunction_code'),
118
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'collaborative_path'),
119
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'grade'),
120

    
121
-- Advanced / market
122
('advanced', 'market', 'advanced-grade', 'grade'),
123
('advanced', 'market', 'advanced-collaborative_path', 'collaborative_path'),
124
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path', 'function_code'),
125
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path', 'subfunction_code'),
126
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path', 'collaborative_path'),
127
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'function_code'),
128
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'subfunction_code'),
129
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'collaborative_path'),
130
('advanced', 'market', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'grade'),
131

    
132
-- Advanced / personalized
133
('advanced', 'personalized', 'advanced-function_code-subfunction_code', 'function_code'),
134
('advanced', 'personalized', 'advanced-function_code-subfunction_code', 'subfunction_code'),
135
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'function_code'),
136
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'subfunction_code'),
137
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'collaborative_path'),
138
('advanced', 'personalized', 'advanced-collaborative_path', 'collaborative_path'),
139
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'function_code'),
140
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'subfunction_code'),
141
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'collaborative_path'),
142
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'grade');
143

    
144
-- 4️ solution_report_charts
145
CREATE TABLE solution_report_charts (
146
  id INT AUTO_INCREMENT PRIMARY KEY,
147
  subscription_code VARCHAR(255) NOT NULL,
148
  category ENUM('market', 'personalized') NOT NULL,
149
  report_chart VARCHAR(255) NOT NULL,
150
  createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
151
  updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
152
  FOREIGN KEY (subscription_code, category)
153
    REFERENCES solution_reports_config_gaps(subscription_code, category)
154
    ON DELETE CASCADE ON UPDATE CASCADE
155
);
156

    
157
INSERT INTO solution_report_charts (subscription_code, category, report_chart) VALUES
158
-- On The Menu / personalized
159
('on_the_menu', 'personalized', 'gap_general'),
160
('on_the_menu', 'personalized', 'general_internal_gap_fixed'),
161

    
162
-- Advanced / personalized
163
('advanced', 'personalized', 'gap_general'),
164
('advanced', 'personalized', 'general_internal_gap_fixed');
165

    
166
-- 5️ solution_report_criterias_charts
167
CREATE TABLE solution_report_criterias_charts (
168
  id INT AUTO_INCREMENT PRIMARY KEY,
169
  subscription_code VARCHAR(255) NOT NULL,
170
  category ENUM('market', 'personalized') NOT NULL,
171
  report_criterias VARCHAR(255) NOT NULL,
172
  criteria VARCHAR(255) NOT NULL,
173
  createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
174
  updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
175
  FOREIGN KEY (subscription_code, category, report_criterias)
176
    REFERENCES solution_report_criterias(subscription_code, category, report_criterias)
177
    ON DELETE CASCADE ON UPDATE CASCADE
178
);
179

    
180
INSERT INTO solution_report_criterias_charts (subscription_code, category, report_criterias, criteria) VALUES
181
-- On The Menu / personalized
182
('on_the_menu', 'personalized', 'on_the_menu-collaborative_path', 'repartition_gap'),
183
('on_the_menu', 'personalized', 'on_the_menu-collaborative_path', 'repartition_data_bf'),
184
('on_the_menu', 'personalized', 'on_the_menu-collaborative_path', 'repartition_data_bt'),
185
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code', 'repartition_gap'),
186
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code', 'repartition_data_bf'),
187
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code', 'repartition_data_bt'),
188
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'repartition_gap'),
189
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'repartition_data_bf'),
190
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path', 'repartition_data_bt'),
191
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'repartition_gap'),
192
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'repartition_data_bf'),
193
('on_the_menu', 'personalized', 'on_the_menu-function_code-subfunction_code-collaborative_path-grade', 'repartition_data_bt'),
194

    
195
-- Advanced / personalized
196
('advanced', 'personalized', 'advanced-collaborative_path', 'repartition_gap'),
197
('advanced', 'personalized', 'advanced-collaborative_path', 'repartition_data_bf'),
198
('advanced', 'personalized', 'advanced-collaborative_path', 'repartition_data_bt'),
199
('advanced', 'personalized', 'advanced-function_code-subfunction_code', 'repartition_gap'),
200
('advanced', 'personalized', 'advanced-function_code-subfunction_code', 'repartition_data_bf'),
201
('advanced', 'personalized', 'advanced-function_code-subfunction_code', 'repartition_data_bt'),
202
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'repartition_gap'),
203
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'repartition_data_bf'),
204
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path', 'repartition_data_bt'),
205
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'repartition_gap'),
206
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'repartition_data_bf'),
207
('advanced', 'personalized', 'advanced-function_code-subfunction_code-collaborative_path-grade', 'repartition_data_bt');
(6-6/8)