Projet

Général

Profil

US #887 » 1_init_solution.sql

ahlem belgacem, 20/01/2025 17:23

 
1
use salarymarket ;
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
    code VARCHAR(255) NOT NULL,
21
	state boolean NULL,
22
	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
    type ENUM('menu', 'subMenu', 'widget', 'option') NULL,
33
    PRIMARY KEY (menuCode),  
34
    UNIQUE (id) 
35
);
36

    
37
-- Create company_solution_menu_droit table  done
38
CREATE TABLE solution_menu_rights (
39
    id INT AUTO_INCREMENT NOT NULL, 
40
    code VARCHAR(255) NOT NULL,  
41
    action VARCHAR(255) NOT NULL,
42
    menuCode VARCHAR(255) NOT NULL,
43
    PRIMARY KEY (code), 
44
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE,
45
	UNIQUE (id) 
46
);
47

    
48
-- Create solution_subscription table => split into two tables solution_subscription than solution_subscription_menu
49
CREATE TABLE solution_subscription (
50
    id INT NOT NULL, 
51
    code VARCHAR(255) NOT NULL,
52
    type ENUM('On The Menu', 'Essential','Advanced') NOT NULL,
53
	PRIMARY KEY (code) 
54
);
55

    
56
CREATE TABLE solution_subscription_menu (
57
    id INT AUTO_INCREMENT  NOT NULL,
58
    subscriptionCode VARCHAR(255) NOT NULL,
59
    menuCode VARCHAR(255) NOT NULL,
60
    FOREIGN KEY (subscriptionCode) REFERENCES solution_subscription(code) ON DELETE CASCADE ON UPDATE CASCADE,
61
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
62
    PRIMARY KEY (subscriptionCode, menuCode),
63
    UNIQUE (id) 
64
);
65

    
66
-- Create solution_subscription_menu_rights with Composite foreign key referencing solution_subscription_menu (subscriptionCode, menuCode)
67
CREATE TABLE solution_subscription_menu_rights (
68
    id INT AUTO_INCREMENT PRIMARY KEY,
69
    subscriptionCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu conbination 
70
    menuCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu
71
    solution_menu_rights_code VARCHAR(255) NOT NULL,
72
    FOREIGN KEY (subscriptionCode, menuCode) REFERENCES solution_subscription_menu(subscriptionCode, menuCode)  ON DELETE CASCADE ON UPDATE CASCADE,
73
    FOREIGN KEY (solution_menu_rights_code) REFERENCES solution_menu_rights(code) ON DELETE CASCADE ON UPDATE CASCADE,
74
    UNIQUE (id) 
75
);
76

    
77

    
78
CREATE TABLE solution_setting_country (
79
id INT AUTO_INCREMENT UNIQUE,
80
code VARCHAR(255) NOT NULL PRIMARY KEY,
81
active boolean,
82
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
83
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
84
);
85

    
86
CREATE TABLE solution_setting_country_translate (
87
id  INT AUTO_INCREMENT PRIMARY KEY,
88
Label TEXT,
89
countryCode VARCHAR(255) NOT NULL,
90
languageId INT NOT NULL,
91
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
92
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
93
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
94
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
95
);
96

    
97
CREATE TABLE solution_setting_business_sector (
98
id INT AUTO_INCREMENT UNIQUE,
99
code VARCHAR(255) NOT NULL PRIMARY KEY,
100
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
101
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
102
);
103
CREATE TABLE solution_setting_business_sector_translate (
104
id  INT AUTO_INCREMENT PRIMARY KEY,
105
Label TEXT,
106
businessSectorCode VARCHAR(255) NOT NULL,
107
languageId INT NOT NULL,
108
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
109
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
110
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
111
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
112
);
113

    
114
CREATE TABLE solution_setting_sales_turnover (
115
id INT AUTO_INCREMENT UNIQUE,
116
code VARCHAR(255) NOT NULL PRIMARY KEY,
117
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
118
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
119
); 
120
CREATE TABLE solution_setting_sales_turnover_translate (
121
id  INT AUTO_INCREMENT PRIMARY KEY,
122
Label TEXT,
123
salesTurnoverCode VARCHAR(255) NOT NULL,
124
languageId INT NOT NULL,
125
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
126
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
127
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
128
FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE
129
);
130

    
131
CREATE TABLE solution_setting_company_size (
132
id INT AUTO_INCREMENT UNIQUE,
133
code VARCHAR(255) NOT NULL PRIMARY KEY,
134
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
135
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
136
);
137
CREATE TABLE solution_setting_company_size_translate (
138
id  INT AUTO_INCREMENT PRIMARY KEY,
139
Label TEXT,
140
companySizeCode VARCHAR(255) NOT NULL,
141
languageId INT NOT NULL,
142
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
143
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
144
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
145
FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE
146
);
147

    
148
CREATE TABLE solution_setting_geographic_extent (
149
id INT AUTO_INCREMENT UNIQUE,
150
code VARCHAR(255) NOT NULL PRIMARY KEY,
151
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
152
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
153
);
154
CREATE TABLE solution_setting_geographic_extent_translate (
155
id  INT AUTO_INCREMENT PRIMARY KEY,
156
Label TEXT,
157
geographicExtentCode VARCHAR(255) NOT NULL,
158
languageId INT NOT NULL,
159
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
160
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
161
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
162
FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE
163
);
164

    
165
CREATE TABLE solution_setting_value_chain (
166
id INT AUTO_INCREMENT UNIQUE,
167
code VARCHAR(255) NOT NULL PRIMARY KEY,
168
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
169
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
170
);
171
CREATE TABLE solution_setting_value_chain_translate (
172
id  INT AUTO_INCREMENT PRIMARY KEY,
173
Label TEXT,
174
valueChainCode VARCHAR(255) NOT NULL,
175
languageId INT NOT NULL,
176
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
177
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
178
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
179
FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE
180
);
181

    
182
CREATE TABLE solution_setting_town(
183
id INT AUTO_INCREMENT UNIQUE,
184
code VARCHAR(255) NOT NULL PRIMARY KEY,
185
countryCode VARCHAR(255) NOT NULL,
186
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
187
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
188
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE 
189
);
190
CREATE TABLE solution_setting_town_translate (
191
id  INT AUTO_INCREMENT PRIMARY KEY,
192
Label TEXT,
193
townCode VARCHAR(255) NOT NULL,
194
languageId INT NOT NULL,
195
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
196
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
197
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
198
FOREIGN KEY (townCode) REFERENCES solution_setting_town(code) ON DELETE CASCADE ON UPDATE CASCADE
199
);
200

    
201
CREATE TABLE solution_setting_sub_sector (
202
id INT AUTO_INCREMENT UNIQUE,
203
code VARCHAR(255) NOT NULL PRIMARY KEY,
204
businessSectorCode VARCHAR(255) NOT NULL,
205
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
206
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
207
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
208
);
209
CREATE TABLE solution_setting_sub_sector_translate (
210
id  INT AUTO_INCREMENT PRIMARY KEY,
211
Label TEXT,
212
subSectorCode VARCHAR(255) NOT NULL,
213
languageId INT NOT NULL,
214
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
215
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
216
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
217
FOREIGN KEY (subSectorCode) REFERENCES solution_setting_sub_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
218
);
219
-- Create solution_compensation table
220
CREATE TABLE solution_compensation (
221
   id INT AUTO_INCREMENT PRIMARY KEY,
222
    column_code VARCHAR(50) NOT NULL,
223
    column_label VARCHAR(255) NOT NULL,
224
    description TEXT,
225
    languageId INT NOT NULL,
226
    FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE
227
);
228
/*** Company Tables ***/
229
-- Create the company table
230

    
231
CREATE TABLE company (
232
    id INT AUTO_INCREMENT PRIMARY KEY,
233
    raisonSociale VARCHAR(255) NOT NULL,
234
    logo VARCHAR(255) NULL,
235
    site VARCHAR(255) NULL,
236
    address VARCHAR(255) NULL,
237
    SIRET VARCHAR(255) NULL,
238
    type ENUM('Solution','Customer') NULL,
239
    parentId INT NOT NULL,
240
    subscriptionType VARCHAR(255) NULL,
241
    status VARCHAR(255) NULL,
242
    companySizeCode VARCHAR(255) NULL,
243
    valueChainCode VARCHAR(255) NULL,
244
    businessSectorCode VARCHAR(255) NULL,
245
    geographicExtentCode VARCHAR(255) NULL,
246
    salesTurnoverCode VARCHAR(255) NULL,
247
    countryCode VARCHAR(255) NULL,
248
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
249
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
250
    FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE,
251
    FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE,
252
    FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE,
253
    FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE,
254
    FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE,
255
    FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
256
);
257

    
258
-- Create company_languages table
259
CREATE TABLE company_languages (
260
    id INT AUTO_INCREMENT PRIMARY KEY,
261
    active ENUM('true', 'false') NOT NULL,
262
    defaultLanguage BOOLEAN NOT NULL,
263
    languagesId INT NOT NULL,
264
    companyId INT NOT NULL,
265
    FOREIGN KEY (languagesId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
266
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
267
);
268
-- Create company_profile table
269
CREATE TABLE company_profile (
270
id INT AUTO_INCREMENT PRIMARY KEY,
271
title VARCHAR(255) NOT NULL,
272
code VARCHAR(255) NOT NULL,
273
companyId INT NOT NULL,
274
FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
275
);
276
-- Create company_users table
277
CREATE TABLE company_users (
278
    id INT AUTO_INCREMENT PRIMARY KEY,
279
    firstName VARCHAR(255) NOT NULL,
280
    lastName VARCHAR(255) NOT NULL,
281
    email VARCHAR(255) NOT NULL UNIQUE, 
282
	password VARCHAR(255) NULL,
283
    phone INT NULL,
284
	avatar VARCHAR(255) NOT NULL,
285
    resetToken VARCHAR(255) NULL,
286
    companyId INT NOT NULL,
287
    code VARCHAR(255) NULL,
288
	actif boolean NULL,
289
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
290
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
291
	updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
292
);
293
-- Create company_entities table
294
CREATE TABLE company_entities (
295
    id INT AUTO_INCREMENT PRIMARY KEY,
296
    code text NOT NULL,
297
    title text NOT NULL,
298
    state boolean NULL,
299
	level text NOT NULL,
300
    parentId VARCHAR(255) NOT NULL,
301
    companyId INT NOT NULL,
302
    FOREIGN KEY (companyId) REFERENCES company(id)  ON DELETE CASCADE ON UPDATE CASCADE
303
);
304
-- Create company_user_profile table
305
CREATE TABLE company_user_profile (
306
    id INT PRIMARY KEY AUTO_INCREMENT,
307
    profileId INT NOT NULL,
308
    usersId INT NOT NULL,
309
    FOREIGN KEY (profileId) REFERENCES company_profile(id)ON DELETE CASCADE ON UPDATE CASCADE ,
310
    FOREIGN KEY (usersId) REFERENCES company_users(id)ON DELETE CASCADE ON UPDATE CASCADE
311
);
312
-- Create company_user_profiles_entities table
313
CREATE TABLE company_user_profiles_entities(
314
	id INT AUTO_INCREMENT PRIMARY KEY,
315
    entitiesCompanyId INT NOT NULL,
316
    userProfileId INT NOT NULL,
317
	state boolean  NOT NULL,
318
    CONSTRAINT FK_UserProfile FOREIGN KEY (userProfileId) REFERENCES company_user_profile (id) ON DELETE CASCADE ON UPDATE CASCADE,
319
    CONSTRAINT FK_EntitiesCompany FOREIGN KEY (entitiesCompanyId) REFERENCES company_entities(id) ON DELETE CASCADE ON UPDATE CASCADE
320
);
321
-- Create company_solution_menu table
322
CREATE TABLE company_solution_menu (
323
    id INT AUTO_INCREMENT PRIMARY KEY,
324
    state BOOLEAN NOT NULL,
325
    companyId INT NOT NULL,
326
    menuCode VARCHAR(255) NOT NULL,
327
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
328
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
329
);
330

    
331
-- Create company_solution_menu_profils table  
332
create table company_solution_menu_profils(
333
	id INT AUTO_INCREMENT PRIMARY KEY,
334
	state boolean  NOT NULL,
335
	profileId INT NOT NULL,
336
	menuSolutionCompanyId INT NOT NULL,
337
    FOREIGN KEY (menuSolutionCompanyId) REFERENCES company_solution_menu(id) ON DELETE CASCADE ON UPDATE CASCADE,
338
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE ON UPDATE CASCADE
339
);
340
-- Create company_solution_menu_profils_droit table
341
 CREATE TABLE company_solution_menu_profils_rights (
342
   id INT AUTO_INCREMENT PRIMARY KEY,
343
    profileId INT,
344
    droitId INT, 
345
	libelle VARCHAR(255) NOT NULL,
346
	actif boolean null ,
347
    FOREIGN KEY (droitId) REFERENCES solution_subscription_menu_rights(id) ON DELETE CASCADE,
348
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE
349
);
350
-- Create company_files table
351
CREATE TABLE company_files (
352
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
353
    description TEXT,
354
    pathFile VARCHAR(255),
355
    extension VARCHAR(255),
356
    size VARCHAR(255),
357
	type VARCHAR(255),
358
    createdAt DATETIME NULL,
359
    updatedAt DATETIME NULL
360
);
361
-- Create company_profile_columns_configuration table
362
CREATE TABLE company_profile_columns_configuration (
363
    id INT AUTO_INCREMENT PRIMARY KEY,
364
    userProfileId INT NOT NULL,
365
    type ENUM('compensation', 'rapport') NOT NULL,
366
    selectedColumns TEXT,
367
    CONSTRAINT userProfileId FOREIGN KEY (userProfileId) REFERENCES company_user_profile(id) ON DELETE CASCADE
368
);
369
-- Create prospecting_company table
370
CREATE TABLE prospecting_company  (
371
    id INT AUTO_INCREMENT PRIMARY KEY,
372
    firstName VARCHAR(255) NOT NULL,
373
    lastName VARCHAR(255) NOT NULL,
374
    email VARCHAR(255) NOT NULL,
375
    phone INT NULL,
376
    raisonSociale VARCHAR(255),
377
    businessSector VARCHAR(255) NOT NULL,
378
    country VARCHAR(255) NOT NULL,
379
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
380
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
381
);
382
-- Create demonstration_company_comments table
383
CREATE TABLE prospecting_company_comments (
384
    id INT AUTO_INCREMENT PRIMARY KEY,
385
    description VARCHAR(255),
386
    userId INT NOT NULL,
387
    prospectingId INT NOT NULL,
388
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
389
    FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE,
390
    FOREIGN KEY (prospectingId) REFERENCES prospecting_company(id) ON DELETE CASCADE ON UPDATE CASCADE
391
);
392
-- Create table company_activities
393
CREATE TABLE company_activities (
394
    id INT AUTO_INCREMENT PRIMARY KEY,
395
    description VARCHAR(255),
396
    action ENUM('create', 'update', 'delete', 'validate', 'send email')  NULL,
397
    type ENUM('company', 'user', 'email', 'company_compensation')  NULL,
398
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
399
    userId INT NULL,
400
    companyId INT NULL,
401
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
402
	FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
403
);
404
-- create notification table
405
CREATE TABLE company_notification (
406
    id INT AUTO_INCREMENT PRIMARY KEY,
407
    icon VARCHAR(255) DEFAULT NULL,
408
    image VARCHAR(255) DEFAULT NULL,
409
    title VARCHAR(255) DEFAULT NULL,
410
    description TEXT DEFAULT NULL,
411
    time DATETIME NOT NULL,
412
    link VARCHAR(255) DEFAULT NULL,
413
    useRouter BOOLEAN DEFAULT TRUE,
414
    seen BOOLEAN DEFAULT FALSE,
415
    idSource INT NOT NULL,
416
    idReceiver INT NOT NULL
417
);
418
-- Create company_meetings table
419
CREATE TABLE company_meetings (
420
  id int NOT NULL AUTO_INCREMENT,
421
  title varchar(255) NOT NULL,
422
  startDate datetime NOT NULL,
423
  endDate datetime NOT NULL,
424
  createdBy int NOT NULL,
425
  link varchar(255) NOT NULL,
426
  description text NOT NULL,
427
  createdAt datetime NOT NULL,
428
  updatedAt datetime NOT NULL,
429
  PRIMARY KEY (id)
430
);
431
-- Create company_user_meeting table
432
CREATE TABLE company_user_meeting (
433
  user_id int NOT NULL,
434
  meeting_id int NOT NULL,
435
  PRIMARY KEY (user_id, meeting_id),
436
  FOREIGN KEY (user_id) REFERENCES company_users (id) ON DELETE CASCADE ON UPDATE CASCADE,
437
  FOREIGN KEY (meeting_id) REFERENCES company_meetings (id) ON DELETE CASCADE ON UPDATE CASCADE
438
);
439
-- Create company_chats table
440
CREATE TABLE company_chats (
441
  id INT AUTO_INCREMENT PRIMARY KEY,
442
  idSource int(11),
443
  isGroup BOOLEAN
444
);
445
-- Create company_chat_messages table
446
CREATE TABLE company_chat_messages (
447
  id INT AUTO_INCREMENT PRIMARY KEY,
448
  chatId int(11),
449
  idSource int(11),
450
  isMine BOOLEAN,
451
  seen BOOLEAN,
452
  value TEXT,
453
  createdAt DATETIME,
454
  FOREIGN KEY (chatId) REFERENCES company_chats(id) ON DELETE CASCADE ON UPDATE CASCADE
455
);
456
-- Create company_chat_messages_file table
457
CREATE TABLE company_chat_messages_file (
458
    message_id INT,
459
    files_id INT,
460
    PRIMARY KEY (message_id, files_id),
461
    FOREIGN KEY (message_id) REFERENCES company_chat_messages(id) ON DELETE CASCADE ON UPDATE CASCADE,
462
    FOREIGN KEY (files_id) REFERENCES company_files(id) ON DELETE CASCADE ON UPDATE CASCADE
463
);
464
-- Create company_chat_group table
465
CREATE TABLE company_chat_group (
466
    chat_id INT,
467
    user_id INT,
468
    PRIMARY KEY (chat_id, user_id),
469
    FOREIGN KEY (chat_id) REFERENCES company_chats(id),
470
    FOREIGN KEY (user_id) REFERENCES company_users(id)
471
);
(1-1/13)