Projet

Général

Profil

US #890 » 1_init_solution.sql

ahlem belgacem, 31/01/2025 16:51

 
1
use socle ;
2
/*** Solution Tables**/
3
-- Create languages table keep it
4
CREATE TABLE languages (
5
    id INT AUTO_INCREMENT PRIMARY KEY,
6
    language VARCHAR(255) NOT NULL,
7
    tag ENUM('en', 'fr', 'es', 'it') NOT NULL 
8
);
9
-- Create solution_languages table keep it
10
CREATE TABLE solution_languages(
11
    id INT AUTO_INCREMENT PRIMARY KEY,
12
    active ENUM('true', 'false') NOT NULL,
13
    defaultLanguage BOOLEAN NOT NULL,
14
    languagesId INT NOT NULL,
15
    FOREIGN KEY (languagesId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE
16
);
17
-- Create solution_entities table
18
CREATE TABLE solution_entities (
19
    id INT AUTO_INCREMENT PRIMARY KEY,
20
    entity_code VARCHAR(255) NOT NULL,
21
	state boolean NULL,
22
	entity_level text NOT NULL,
23
    title VARCHAR(255) NOT NULL,
24
    parentId VARCHAR(255) NOT NULL
25
);
26
-- Create solution_menu table
27
CREATE TABLE solution_menu (
28
    id INT AUTO_INCREMENT NOT NULL, 
29
    menuCode VARCHAR(255) NOT NULL,  
30
    menuLibelle TEXT NULL,
31
    parentMenu VARCHAR(255) NULL,
32
    menu_type ENUM('menu', 'subMenu', 'widget', 'option') NULL,
33
    menu_position BOOLEAN NOT NULL,
34
    PRIMARY KEY (menuCode),  
35
    UNIQUE (id) 
36
);
37
-- Create company_solution_menu_droit table  done
38
CREATE TABLE solution_menu_rights (
39
    id INT AUTO_INCREMENT NOT NULL, 
40
	right_code VARCHAR(255) NOT NULL,  
41
    right_label VARCHAR(255) NOT NULL,
42
    menuCode VARCHAR(255) NOT NULL,
43
    PRIMARY KEY (right_code), 
44
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE,
45
	UNIQUE (id) 
46
);
47
-- Create solution_subscription table => split into two tables solution_subscription than solution_subscription_menu
48
CREATE TABLE solution_subscription (
49
    id INT NOT NULL, 
50
    subscription_code VARCHAR(255) NOT NULL,
51
    subscription_type ENUM('On The Menu', 'Essential','Advanced') NOT NULL,
52
	PRIMARY KEY (subscription_code) 
53
);
54
CREATE TABLE solution_subscription_menu (
55
    id INT AUTO_INCREMENT  NOT NULL,
56
    subscriptionCode VARCHAR(255) NOT NULL,
57
    menuCode VARCHAR(255) NOT NULL,
58
    FOREIGN KEY (subscriptionCode) REFERENCES solution_subscription(subscription_code) ON DELETE CASCADE ON UPDATE CASCADE,
59
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
60
    PRIMARY KEY (subscriptionCode, menuCode),
61
    UNIQUE (id) 
62
);
63
-- Create solution_subscription_menu_rights with Composite foreign key referencing solution_subscription_menu (subscriptionCode, menuCode)
64
CREATE TABLE solution_subscription_menu_rights (
65
    id INT AUTO_INCREMENT PRIMARY KEY,
66
    subscriptionCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu conbination 
67
    menuCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu
68
    solution_menu_rights_code VARCHAR(255) NOT NULL,
69
    FOREIGN KEY (subscriptionCode, menuCode) REFERENCES solution_subscription_menu(subscriptionCode, menuCode)  ON DELETE CASCADE ON UPDATE CASCADE,
70
    FOREIGN KEY (solution_menu_rights_code) REFERENCES solution_menu_rights(right_code) ON DELETE CASCADE ON UPDATE CASCADE,
71
    UNIQUE (id) 
72
);
73
CREATE TABLE solution_setting_country (
74
id INT AUTO_INCREMENT UNIQUE,
75
code VARCHAR(255) NOT NULL PRIMARY KEY,
76
active boolean,
77
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
78
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
79
);
80
CREATE TABLE solution_setting_country_translate (
81
id  INT AUTO_INCREMENT PRIMARY KEY,
82
Label TEXT,
83
countryCode VARCHAR(255) NOT NULL,
84
languageId INT NOT NULL,
85
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
86
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
87
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
88
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
89
);
90
CREATE TABLE solution_setting_business_sector (
91
id INT AUTO_INCREMENT UNIQUE,
92
code VARCHAR(255) NOT NULL PRIMARY KEY,
93
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
94
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
95
);
96
CREATE TABLE solution_setting_business_sector_translate (
97
id  INT AUTO_INCREMENT PRIMARY KEY,
98
Label TEXT,
99
businessSectorCode VARCHAR(255) NOT NULL,
100
languageId INT NOT NULL,
101
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
102
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
103
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
104
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
105
);
106
CREATE TABLE solution_setting_sales_turnover (
107
id INT AUTO_INCREMENT UNIQUE,
108
code VARCHAR(255) NOT NULL PRIMARY KEY,
109
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
110
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
111
); 
112
CREATE TABLE solution_setting_sales_turnover_translate (
113
id  INT AUTO_INCREMENT PRIMARY KEY,
114
Label TEXT,
115
salesTurnoverCode VARCHAR(255) NOT NULL,
116
languageId INT NOT NULL,
117
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
118
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
119
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
120
FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE
121
);
122
CREATE TABLE solution_setting_company_size (
123
id INT AUTO_INCREMENT UNIQUE,
124
code VARCHAR(255) NOT NULL PRIMARY KEY,
125
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
126
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
127
);
128
CREATE TABLE solution_setting_company_size_translate (
129
id  INT AUTO_INCREMENT PRIMARY KEY,
130
Label TEXT,
131
companySizeCode VARCHAR(255) NOT NULL,
132
languageId INT NOT NULL,
133
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
134
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
135
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
136
FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE
137
);
138
CREATE TABLE solution_setting_geographic_extent (
139
id INT AUTO_INCREMENT UNIQUE,
140
code VARCHAR(255) NOT NULL PRIMARY KEY,
141
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
142
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
143
);
144
CREATE TABLE solution_setting_geographic_extent_translate (
145
id  INT AUTO_INCREMENT PRIMARY KEY,
146
Label TEXT,
147
geographicExtentCode VARCHAR(255) NOT NULL,
148
languageId INT NOT NULL,
149
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
150
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
151
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
152
FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE
153
);
154
CREATE TABLE solution_setting_value_chain (
155
id INT AUTO_INCREMENT UNIQUE,
156
code VARCHAR(255) NOT NULL PRIMARY KEY,
157
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
158
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
159
);
160
CREATE TABLE solution_setting_value_chain_translate (
161
id  INT AUTO_INCREMENT PRIMARY KEY,
162
Label TEXT,
163
valueChainCode VARCHAR(255) NOT NULL,
164
languageId INT NOT NULL,
165
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
166
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
167
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
168
FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE
169
);
170
CREATE TABLE solution_setting_town(
171
id INT AUTO_INCREMENT UNIQUE,
172
code VARCHAR(255) NOT NULL PRIMARY KEY,
173
countryCode VARCHAR(255) NOT NULL,
174
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
175
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
176
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE 
177
);
178
CREATE TABLE solution_setting_town_translate (
179
id  INT AUTO_INCREMENT PRIMARY KEY,
180
Label TEXT,
181
townCode VARCHAR(255) NOT NULL,
182
languageId INT NOT NULL,
183
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
184
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
185
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
186
FOREIGN KEY (townCode) REFERENCES solution_setting_town(code) ON DELETE CASCADE ON UPDATE CASCADE
187
);
188
CREATE TABLE solution_setting_sub_sector (
189
id INT AUTO_INCREMENT UNIQUE,
190
code VARCHAR(255) NOT NULL PRIMARY KEY,
191
businessSectorCode VARCHAR(255) NOT NULL,
192
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
193
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
194
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
195
);
196
CREATE TABLE solution_setting_sub_sector_translate (
197
id  INT AUTO_INCREMENT PRIMARY KEY,
198
Label TEXT,
199
subSectorCode VARCHAR(255) NOT NULL,
200
languageId INT NOT NULL,
201
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
202
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
203
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
204
FOREIGN KEY (subSectorCode) REFERENCES solution_setting_sub_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
205
);
206
-- Create solution_compensation table
207
CREATE TABLE solution_compensation (
208
   id INT AUTO_INCREMENT PRIMARY KEY,
209
    column_code VARCHAR(50) NOT NULL,
210
    column_label VARCHAR(255) NOT NULL,
211
    description TEXT,
212
    languageId INT NOT NULL,
213
    FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE
214
);
215
/*** Company Tables ***/
216
-- Create the company table
217
CREATE TABLE company (
218
    id INT AUTO_INCREMENT PRIMARY KEY,
219
    raisonSociale VARCHAR(255) NOT NULL,
220
    logo VARCHAR(255) NULL,
221
    site VARCHAR(255) NULL,
222
    address VARCHAR(255) NULL,
223
    SIRET VARCHAR(255) NULL,
224
    company_type ENUM('Solution','Customer') NULL,
225
    parentId INT NOT NULL,
226
    subscription_type VARCHAR(255) NULL,
227
    company_status VARCHAR(255) NULL,
228
    companySizeCode VARCHAR(255) NULL,
229
    valueChainCode VARCHAR(255) NULL,
230
    businessSectorCode VARCHAR(255) NULL,
231
    geographicExtentCode VARCHAR(255) NULL,
232
    salesTurnoverCode VARCHAR(255) NULL,
233
    countryCode VARCHAR(255) NULL,
234
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
235
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
236
    FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE,
237
    FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE,
238
    FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE,
239
    FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE,
240
    FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE,
241
    FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
242
);
243
-- Create company_languages table
244
CREATE TABLE company_languages (
245
    id INT AUTO_INCREMENT PRIMARY KEY,
246
    active ENUM('true', 'false') NOT NULL,
247
    defaultLanguage BOOLEAN NOT NULL,
248
    languagesId INT NOT NULL,
249
    companyId INT NOT NULL,
250
    FOREIGN KEY (languagesId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
251
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
252
);
253
-- Create company_profile table
254
CREATE TABLE company_profile (
255
id INT AUTO_INCREMENT PRIMARY KEY,
256
title VARCHAR(255) NOT NULL,
257
profile_code VARCHAR(255) NOT NULL,
258
companyId INT NOT NULL,
259
FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
260
);
261
-- Create company_users table
262
CREATE TABLE company_users (
263
    id INT AUTO_INCREMENT PRIMARY KEY,
264
    firstName VARCHAR(255) NOT NULL,
265
    lastName VARCHAR(255) NOT NULL,
266
    email VARCHAR(255) NOT NULL UNIQUE, 
267
	user_password VARCHAR(255) NULL,
268
    phone INT NULL,
269
	avatar VARCHAR(255) NOT NULL,
270
    resetToken VARCHAR(255) NULL,
271
    companyId INT NOT NULL,
272
    user_code VARCHAR(255) NULL,
273
	actif boolean NULL,
274
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
275
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
276
	updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
277
);
278
-- Create company_entities table
279
CREATE TABLE company_entities (
280
    id INT AUTO_INCREMENT PRIMARY KEY,
281
    entity_code text NOT NULL,
282
    title text NOT NULL,
283
    state boolean NULL,
284
	entity_level INT  NULL,
285
    parentId VARCHAR(255) NOT NULL,
286
    companyId INT NOT NULL,
287
    FOREIGN KEY (companyId) REFERENCES company(id)  ON DELETE CASCADE ON UPDATE CASCADE
288
);
289
-- Create company_user_profile table
290
CREATE TABLE company_user_profile (
291
    id INT PRIMARY KEY AUTO_INCREMENT,
292
    profileId INT NOT NULL,
293
    usersId INT NOT NULL,
294
    FOREIGN KEY (profileId) REFERENCES company_profile(id)ON DELETE CASCADE ON UPDATE CASCADE ,
295
    FOREIGN KEY (usersId) REFERENCES company_users(id)ON DELETE CASCADE ON UPDATE CASCADE
296
);
297
-- Create company_user_profiles_entities table
298
CREATE TABLE company_user_profiles_entities(
299
	id INT AUTO_INCREMENT PRIMARY KEY,
300
    entitiesCompanyId INT NOT NULL,
301
    userProfileId INT NOT NULL,
302
	state boolean  NOT NULL,
303
    CONSTRAINT FK_UserProfile FOREIGN KEY (userProfileId) REFERENCES company_user_profile (id) ON DELETE CASCADE ON UPDATE CASCADE,
304
    CONSTRAINT FK_EntitiesCompany FOREIGN KEY (entitiesCompanyId) REFERENCES company_entities(id) ON DELETE CASCADE ON UPDATE CASCADE
305
);
306
-- Create company_solution_menu table
307
CREATE TABLE company_solution_menu (
308
    id INT AUTO_INCREMENT PRIMARY KEY,
309
    state BOOLEAN NOT NULL,
310
    companyId INT NOT NULL,
311
    menuCode VARCHAR(255) NOT NULL,
312
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
313
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
314
);
315
-- Create company_solution_menu_profils table  
316
create table company_solution_menu_profils(
317
	id INT AUTO_INCREMENT PRIMARY KEY,
318
	state  boolean  NOT NULL,
319
	profileId INT NOT NULL,
320
	menuSolutionCompanyId INT NOT NULL,
321
    FOREIGN KEY (menuSolutionCompanyId) REFERENCES company_solution_menu(id) ON DELETE CASCADE ON UPDATE CASCADE,
322
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE ON UPDATE CASCADE
323
);
324
-- Create company_solution_menu_profils_droit table
325
 CREATE TABLE company_solution_menu_profils_rights (
326
   id INT AUTO_INCREMENT PRIMARY KEY,
327
    profileId INT,
328
    rightId INT NULL, 
329
	libelle VARCHAR(255) NOT NULL,
330
	actif boolean null ,
331
    FOREIGN KEY (rightId) REFERENCES solution_subscription_menu_rights(id) ON DELETE CASCADE,
332
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE
333
);
334
-- Create company_files table
335
CREATE TABLE company_files (
336
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
337
    description TEXT,
338
    pathFile VARCHAR(255),
339
    extension VARCHAR(255),
340
    size VARCHAR(255),
341
	file_type VARCHAR(255),
342
    createdAt DATETIME NULL,
343
    updatedAt DATETIME NULL
344
);
345
-- Create company_profile_columns_configuration table
346
CREATE TABLE company_profile_columns_configuration (
347
    id INT AUTO_INCREMENT PRIMARY KEY,
348
    userProfileId INT NOT NULL,
349
    column_type  ENUM('compensation', 'rapport') NOT NULL,
350
    selectedColumns TEXT,
351
    CONSTRAINT userProfileId FOREIGN KEY (userProfileId) REFERENCES company_user_profile(id) ON DELETE CASCADE
352
);
353
-- Create prospecting_company table
354
CREATE TABLE prospecting_company  (
355
    id INT AUTO_INCREMENT PRIMARY KEY,
356
    firstName VARCHAR(255) NOT NULL,
357
    lastName VARCHAR(255) NOT NULL,
358
    email VARCHAR(255) NOT NULL,
359
    phone INT NULL,
360
    raisonSociale VARCHAR(255),
361
    businessSector VARCHAR(255) NOT NULL,
362
    country VARCHAR(255) NOT NULL,
363
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
364
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
365
);
366
-- Create demonstration_company_comments table
367
CREATE TABLE prospecting_company_comments (
368
    id INT AUTO_INCREMENT PRIMARY KEY,
369
    description VARCHAR(255),
370
    userId INT NOT NULL,
371
    prospectingId INT NOT NULL,
372
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
373
    FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE,
374
    FOREIGN KEY (prospectingId) REFERENCES prospecting_company(id) ON DELETE CASCADE ON UPDATE CASCADE
375
);
376
-- Create table company_activities
377
CREATE TABLE company_activities (
378
    id INT AUTO_INCREMENT PRIMARY KEY,
379
    description VARCHAR(255),
380
    activity_action ENUM('create', 'update', 'delete', 'validate', 'send email')  NULL,
381
    activity_type ENUM('company', 'user', 'email', 'company_compensation')  NULL,
382
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
383
    userId INT NULL,
384
    companyId INT NULL,
385
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
386
	FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
387
);
388
-- create notification table
389
CREATE TABLE company_notification (
390
    id INT AUTO_INCREMENT PRIMARY KEY,
391
    icon VARCHAR(255) DEFAULT NULL,
392
    image VARCHAR(255) DEFAULT NULL,
393
    title VARCHAR(255) DEFAULT NULL,
394
    description TEXT DEFAULT NULL,
395
    time DATETIME NOT NULL,
396
    link VARCHAR(255) DEFAULT NULL,
397
    useRouter BOOLEAN DEFAULT TRUE,
398
    seen BOOLEAN DEFAULT FALSE,
399
    idSource INT NOT NULL,
400
    idReceiver INT NOT NULL
401
);
402
-- Create company_meetings table
403
CREATE TABLE company_meetings (
404
  id int NOT NULL AUTO_INCREMENT,
405
  title varchar(255) NOT NULL,
406
  startDate datetime NOT NULL,
407
  endDate datetime NOT NULL,
408
  createdBy int NOT NULL,
409
  link varchar(255) NOT NULL,
410
  description text NOT NULL,
411
  createdAt datetime NOT NULL,
412
  updatedAt datetime NOT NULL,
413
  PRIMARY KEY (id)
414
);
415
-- Create company_user_meeting table
416
CREATE TABLE company_user_meeting (
417
  user_id int NOT NULL,
418
  meeting_id int NOT NULL,
419
  PRIMARY KEY (user_id, meeting_id),
420
  FOREIGN KEY (user_id) REFERENCES company_users (id) ON DELETE CASCADE ON UPDATE CASCADE,
421
  FOREIGN KEY (meeting_id) REFERENCES company_meetings (id) ON DELETE CASCADE ON UPDATE CASCADE
422
);
423
-- Create company_chats table
424
CREATE TABLE company_chats (
425
  id INT AUTO_INCREMENT PRIMARY KEY,
426
  idSource int(11),
427
  isGroup BOOLEAN
428
);
429
-- Create company_chat_messages table
430
CREATE TABLE company_chat_messages (
431
  id INT AUTO_INCREMENT PRIMARY KEY,
432
  chatId int(11),
433
  idSource int(11),
434
  isMine BOOLEAN,
435
  seen BOOLEAN,
436
  value TEXT,
437
  createdAt DATETIME,
438
  FOREIGN KEY (chatId) REFERENCES company_chats(id) ON DELETE CASCADE ON UPDATE CASCADE
439
);
440
-- Create company_chat_messages_file table
441
CREATE TABLE company_chat_messages_file (
442
    message_id INT,
443
    files_id INT,
444
    PRIMARY KEY (message_id, files_id),
445
    FOREIGN KEY (message_id) REFERENCES company_chat_messages(id) ON DELETE CASCADE ON UPDATE CASCADE,
446
    FOREIGN KEY (files_id) REFERENCES company_files(id) ON DELETE CASCADE ON UPDATE CASCADE
447
);
448
-- Create company_chat_group table
449
CREATE TABLE company_chat_group (
450
    chat_id INT,
451
    user_id INT,
452
    PRIMARY KEY (chat_id, user_id),
453
    FOREIGN KEY (chat_id) REFERENCES company_chats(id),
454
    FOREIGN KEY (user_id) REFERENCES company_users(id)
455
);
(7-7/11)