Projet

Général

Profil

US #878 » 1_init_solution.sql

ahlem belgacem, 01/02/2025 12:51

 
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
    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
    taxRegistration 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
    subSectorCode VARCHAR(255) NULL,
234
    countryCode VARCHAR(255) NULL,
235
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
236
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
237
    FOREIGN KEY (subSectorCode) REFERENCES solution_setting_sub_sector(code) ON DELETE CASCADE ON UPDATE CASCADE,
238
    FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE,
239
    FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE,
240
    FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE,
241
    FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE,
242
    FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE,
243
    FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
244
);
245
-- Create company_languages table
246
CREATE TABLE company_languages (
247
    id INT AUTO_INCREMENT PRIMARY KEY,
248
    active ENUM('true', 'false') NOT NULL,
249
    defaultLanguage BOOLEAN NOT NULL,
250
    languagesId INT NOT NULL,
251
    companyId INT NOT NULL,
252
    FOREIGN KEY (languagesId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
253
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
254
);
255
-- Create company_profile table
256
CREATE TABLE company_profile (
257
id INT AUTO_INCREMENT PRIMARY KEY,
258
title VARCHAR(255) NOT NULL,
259
profile_code VARCHAR(255) NOT NULL,
260
companyId INT NOT NULL,
261
FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
262
);
263
-- Create company_users table
264
CREATE TABLE company_users (
265
    id INT AUTO_INCREMENT PRIMARY KEY,
266
    firstName VARCHAR(255) NOT NULL,
267
    lastName VARCHAR(255) NOT NULL,
268
    email VARCHAR(255) NOT NULL UNIQUE, 
269
	user_password VARCHAR(255) NULL,
270
    phone INT NULL,
271
    poste VARCHAR(255) NULL,
272
	avatar VARCHAR(255) NOT NULL,
273
    resetToken VARCHAR(255) NULL,
274
    companyId INT NOT NULL,
275
    user_code VARCHAR(255) NULL,
276
	actif boolean NULL,
277
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
278
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
279
	updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
280
);
281
-- Create company_entities table
282
CREATE TABLE company_entities (
283
    id INT AUTO_INCREMENT PRIMARY KEY,
284
    entity_code text NOT NULL,
285
    title text NOT NULL,
286
    state boolean NULL,
287
	entity_level INT  NULL,
288
    parentId VARCHAR(255) NOT NULL,
289
    companyId INT NOT NULL,
290
    FOREIGN KEY (companyId) REFERENCES company(id)  ON DELETE CASCADE ON UPDATE CASCADE
291
);
292
-- Create company_user_profile table
293
CREATE TABLE company_user_profile (
294
    id INT PRIMARY KEY AUTO_INCREMENT,
295
    profileId INT NOT NULL,
296
    usersId INT NOT NULL,
297
    FOREIGN KEY (profileId) REFERENCES company_profile(id)ON DELETE CASCADE ON UPDATE CASCADE ,
298
    FOREIGN KEY (usersId) REFERENCES company_users(id)ON DELETE CASCADE ON UPDATE CASCADE
299
);
300
-- Create company_user_profiles_entities table
301
CREATE TABLE company_user_profiles_entities(
302
	id INT AUTO_INCREMENT PRIMARY KEY,
303
    entitiesCompanyId INT NOT NULL,
304
    userProfileId INT NOT NULL,
305
	state boolean  NOT NULL,
306
    CONSTRAINT FK_UserProfile FOREIGN KEY (userProfileId) REFERENCES company_user_profile (id) ON DELETE CASCADE ON UPDATE CASCADE,
307
    CONSTRAINT FK_EntitiesCompany FOREIGN KEY (entitiesCompanyId) REFERENCES company_entities(id) ON DELETE CASCADE ON UPDATE CASCADE
308
);
309
-- Create company_solution_menu table
310
CREATE TABLE company_solution_menu (
311
    id INT AUTO_INCREMENT PRIMARY KEY,
312
    state BOOLEAN NOT NULL,
313
    companyId INT NOT NULL,
314
    menuCode VARCHAR(255) NOT NULL,
315
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
316
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
317
);
318
-- Create company_solution_menu_profils table  
319
create table company_solution_menu_profils(
320
	id INT AUTO_INCREMENT PRIMARY KEY,
321
	state  boolean  NOT NULL,
322
	profileId INT NOT NULL,
323
	menuSolutionCompanyId INT NOT NULL,
324
    FOREIGN KEY (menuSolutionCompanyId) REFERENCES company_solution_menu(id) ON DELETE CASCADE ON UPDATE CASCADE,
325
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE ON UPDATE CASCADE
326
);
327
-- Create company_solution_menu_profils_droit table
328
 CREATE TABLE company_solution_menu_profils_rights (
329
   id INT AUTO_INCREMENT PRIMARY KEY,
330
    profileId INT,
331
    rightId INT NULL, 
332
	libelle VARCHAR(255) NOT NULL,
333
	actif boolean null ,
334
    FOREIGN KEY (rightId) REFERENCES solution_subscription_menu_rights(id) ON DELETE CASCADE,
335
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE
336
);
337
-- Create company_files table
338
CREATE TABLE company_files (
339
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
340
    description TEXT,
341
    pathFile VARCHAR(255),
342
    extension VARCHAR(255),
343
    size VARCHAR(255),
344
	file_type VARCHAR(255),
345
    createdAt DATETIME NULL,
346
    updatedAt DATETIME NULL
347
);
348
-- Create company_profile_columns_configuration table
349
CREATE TABLE company_profile_columns_configuration (
350
    id INT AUTO_INCREMENT PRIMARY KEY,
351
    userProfileId INT NOT NULL,
352
    column_type  ENUM('compensation', 'rapport') NOT NULL,
353
    selectedColumns TEXT,
354
    CONSTRAINT userProfileId FOREIGN KEY (userProfileId) REFERENCES company_user_profile(id) ON DELETE CASCADE
355
);
356
-- Create prospecting_company table
357
CREATE TABLE prospecting_company  (
358
    id INT AUTO_INCREMENT PRIMARY KEY,
359
    firstName VARCHAR(255) NOT NULL,
360
    lastName VARCHAR(255) NOT NULL,
361
    email VARCHAR(255) NOT NULL,
362
    phone INT NULL,
363
    raisonSociale VARCHAR(255),
364
    businessSector VARCHAR(255) NOT NULL,
365
    country VARCHAR(255) NOT NULL,
366
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
367
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
368
);
369
-- Create demonstration_company_comments table
370
CREATE TABLE prospecting_company_comments (
371
    id INT AUTO_INCREMENT PRIMARY KEY,
372
    description VARCHAR(255),
373
    userId INT NOT NULL,
374
    prospectingId INT NOT NULL,
375
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
376
    FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE,
377
    FOREIGN KEY (prospectingId) REFERENCES prospecting_company(id) ON DELETE CASCADE ON UPDATE CASCADE
378
);
379
-- Create table company_activities
380
CREATE TABLE company_activities (
381
    id INT AUTO_INCREMENT PRIMARY KEY,
382
    description VARCHAR(255),
383
    activity_action ENUM('create', 'update', 'delete', 'validate', 'send email')  NULL,
384
    activity_type ENUM('company', 'user', 'email', 'company_compensation')  NULL,
385
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
386
    userId INT NULL,
387
    companyId INT NULL,
388
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
389
	FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
390
);
391
-- create notification table
392
CREATE TABLE company_notification (
393
    id INT AUTO_INCREMENT PRIMARY KEY,
394
    icon VARCHAR(255) DEFAULT NULL,
395
    image VARCHAR(255) DEFAULT NULL,
396
    title VARCHAR(255) DEFAULT NULL,
397
    description TEXT DEFAULT NULL,
398
    time DATETIME NOT NULL,
399
    link VARCHAR(255) DEFAULT NULL,
400
    useRouter BOOLEAN DEFAULT TRUE,
401
    seen BOOLEAN DEFAULT FALSE,
402
    idSource INT NOT NULL,
403
    idReceiver INT NOT NULL
404
);
405
-- Create company_meetings table
406
CREATE TABLE company_meetings (
407
  id int NOT NULL AUTO_INCREMENT,
408
  title varchar(255) NOT NULL,
409
  startDate datetime NOT NULL,
410
  endDate datetime NOT NULL,
411
  createdBy int NOT NULL,
412
  link varchar(255) NOT NULL,
413
  description text NOT NULL,
414
  createdAt datetime NOT NULL,
415
  updatedAt datetime NOT NULL,
416
  PRIMARY KEY (id)
417
);
418
-- Create company_user_meeting table
419
CREATE TABLE company_user_meeting (
420
  user_id int NOT NULL,
421
  meeting_id int NOT NULL,
422
  PRIMARY KEY (user_id, meeting_id),
423
  FOREIGN KEY (user_id) REFERENCES company_users (id) ON DELETE CASCADE ON UPDATE CASCADE,
424
  FOREIGN KEY (meeting_id) REFERENCES company_meetings (id) ON DELETE CASCADE ON UPDATE CASCADE
425
);
426
-- Create company_chats table
427
CREATE TABLE company_chats (
428
  id INT AUTO_INCREMENT PRIMARY KEY,
429
  idSource int(11),
430
  isGroup BOOLEAN
431
);
432
-- Create company_chat_messages table
433
CREATE TABLE company_chat_messages (
434
  id INT AUTO_INCREMENT PRIMARY KEY,
435
  chatId int(11),
436
  idSource int(11),
437
  isMine BOOLEAN,
438
  seen BOOLEAN,
439
  value TEXT,
440
  createdAt DATETIME,
441
  FOREIGN KEY (chatId) REFERENCES company_chats(id) ON DELETE CASCADE ON UPDATE CASCADE
442
);
443
-- Create company_chat_messages_file table
444
CREATE TABLE company_chat_messages_file (
445
    message_id INT,
446
    files_id INT,
447
    PRIMARY KEY (message_id, files_id),
448
    FOREIGN KEY (message_id) REFERENCES company_chat_messages(id) ON DELETE CASCADE ON UPDATE CASCADE,
449
    FOREIGN KEY (files_id) REFERENCES company_files(id) ON DELETE CASCADE ON UPDATE CASCADE
450
);
451
-- Create company_chat_group table
452
CREATE TABLE company_chat_group (
453
    chat_id INT,
454
    user_id INT,
455
    PRIMARY KEY (chat_id, user_id),
456
    FOREIGN KEY (chat_id) REFERENCES company_chats(id),
457
    FOREIGN KEY (user_id) REFERENCES company_users(id)
458
);
(1-1/10)