Projet

Général

Profil

DATABASE ARCHIVE » 1_1_init_solution.sql

Tarek AOUADI, 02/04/2025 00:03

 
1
use salarymarket ;
2

    
3
/*** Solution Tables**/
4
-- Create languages table keep it
5
CREATE TABLE languages (
6
    id INT AUTO_INCREMENT PRIMARY KEY,
7
    language VARCHAR(255) NOT NULL,
8
    tag ENUM('en', 'fr', 'es', 'it') NOT NULL 
9
);
10
-- Create solution_languages table keep it
11
CREATE TABLE solution_languages(
12
    id INT AUTO_INCREMENT PRIMARY KEY,
13
    active ENUM('true', 'false') NOT NULL,
14
    defaultLanguage BOOLEAN NOT NULL,
15
    languagesId INT NOT NULL,
16
    FOREIGN KEY (languagesId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE
17
);
18
-- Create solution_entities table
19
CREATE TABLE solution_entities (
20
    id INT AUTO_INCREMENT PRIMARY KEY,
21
    entity_code VARCHAR(255) NOT NULL,
22
	state boolean NULL,
23
	entity_level text NOT NULL,
24
    title VARCHAR(255) NOT NULL,
25
    parentId VARCHAR(255) NOT NULL
26
);
27
-- Create solution_menu table
28
CREATE TABLE solution_menu (
29
    id INT AUTO_INCREMENT NOT NULL, 
30
    menuCode VARCHAR(255) NOT NULL,  
31
    menuLibelle TEXT NULL,
32
    parentMenu VARCHAR(255) NULL,
33
    menu_type ENUM('menu', 'subMenu', 'widget', 'option') NULL,
34
    menu_position BOOLEAN NOT NULL,
35
    PRIMARY KEY (menuCode),  
36
    UNIQUE (id) 
37
);
38
-- Create company_solution_menu_droit table  done
39
CREATE TABLE solution_menu_rights (
40
    id INT AUTO_INCREMENT NOT NULL, 
41
	right_code VARCHAR(255) NOT NULL,  
42
    right_label VARCHAR(255) NOT NULL,
43
    menuCode VARCHAR(255) NOT NULL,
44
    PRIMARY KEY (right_code), 
45
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE,
46
	UNIQUE (id) 
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
    subscription_code VARCHAR(255) NOT NULL,
52
    subscription_type ENUM('On The Menu', 'Essential','Advanced','Solution') NOT NULL,
53
	PRIMARY KEY (subscription_code) 
54
);
55
CREATE TABLE solution_subscription_menu (
56
    id INT AUTO_INCREMENT  NOT NULL,
57
    subscriptionCode VARCHAR(255) NOT NULL,
58
    menuCode VARCHAR(255) NOT NULL,
59
    FOREIGN KEY (subscriptionCode) REFERENCES solution_subscription(subscription_code) ON DELETE CASCADE ON UPDATE CASCADE,
60
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
61
    PRIMARY KEY (subscriptionCode, menuCode),
62
    UNIQUE (id) 
63
);
64
-- Create solution_subscription_menu_rights with Composite foreign key referencing solution_subscription_menu (subscriptionCode, menuCode)
65
CREATE TABLE solution_subscription_menu_rights (
66
    id INT AUTO_INCREMENT PRIMARY KEY,
67
    subscriptionCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu conbination 
68
    menuCode VARCHAR(255) NOT NULL, -- from solution_subscription_menu
69
    solution_menu_rights_code VARCHAR(255) NOT NULL,
70
    FOREIGN KEY (subscriptionCode, menuCode) REFERENCES solution_subscription_menu(subscriptionCode, menuCode)  ON DELETE CASCADE ON UPDATE CASCADE,
71
    FOREIGN KEY (solution_menu_rights_code) REFERENCES solution_menu_rights(right_code) ON DELETE CASCADE ON UPDATE CASCADE,
72
    UNIQUE (id) 
73
);
74
CREATE TABLE solution_setting_country (
75
id INT AUTO_INCREMENT UNIQUE,
76
code VARCHAR(255) NOT NULL PRIMARY KEY,
77
active boolean,
78
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
79
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
80
);
81
CREATE TABLE solution_setting_country_translate (
82
id  INT AUTO_INCREMENT PRIMARY KEY,
83
Label TEXT,
84
countryCode VARCHAR(255) NOT NULL,
85
languageId INT NOT NULL,
86
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
87
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
88
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
89
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE
90
);
91
CREATE TABLE solution_setting_business_sector (
92
id INT AUTO_INCREMENT UNIQUE,
93
code VARCHAR(255) NOT NULL PRIMARY KEY,
94
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
95
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
96
);
97
CREATE TABLE solution_setting_business_sector_translate (
98
id  INT AUTO_INCREMENT PRIMARY KEY,
99
Label TEXT,
100
businessSectorCode VARCHAR(255) NOT NULL,
101
languageId INT NOT NULL,
102
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
103
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
104
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
105
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
106
);
107
CREATE TABLE solution_setting_sales_turnover (
108
id INT AUTO_INCREMENT UNIQUE,
109
code VARCHAR(255) NOT NULL PRIMARY KEY,
110
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
111
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
112
); 
113
CREATE TABLE solution_setting_sales_turnover_translate (
114
id  INT AUTO_INCREMENT PRIMARY KEY,
115
Label TEXT,
116
salesTurnoverCode VARCHAR(255) NOT NULL,
117
languageId INT NOT NULL,
118
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
119
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
120
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
121
FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE CASCADE ON UPDATE CASCADE
122
);
123
CREATE TABLE solution_setting_company_size (
124
id INT AUTO_INCREMENT UNIQUE,
125
code VARCHAR(255) NOT NULL PRIMARY KEY,
126
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
127
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
128
);
129
CREATE TABLE solution_setting_company_size_translate (
130
id  INT AUTO_INCREMENT PRIMARY KEY,
131
Label TEXT,
132
companySizeCode VARCHAR(255) NOT NULL,
133
languageId INT NOT NULL,
134
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
135
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
136
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
137
FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE CASCADE ON UPDATE CASCADE
138
);
139
CREATE TABLE solution_setting_geographic_extent (
140
id INT AUTO_INCREMENT UNIQUE,
141
code VARCHAR(255) NOT NULL PRIMARY KEY,
142
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
143
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
144
);
145
CREATE TABLE solution_setting_geographic_extent_translate (
146
id  INT AUTO_INCREMENT PRIMARY KEY,
147
Label TEXT,
148
geographicExtentCode VARCHAR(255) NOT NULL,
149
languageId INT NOT NULL,
150
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
151
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
152
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
153
FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE CASCADE ON UPDATE CASCADE
154
);
155
CREATE TABLE solution_setting_value_chain (
156
id INT AUTO_INCREMENT UNIQUE,
157
code VARCHAR(255) NOT NULL PRIMARY KEY,
158
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
159
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
160
);
161
CREATE TABLE solution_setting_value_chain_translate (
162
id  INT AUTO_INCREMENT PRIMARY KEY,
163
Label TEXT,
164
valueChainCode VARCHAR(255) NOT NULL,
165
languageId INT NOT NULL,
166
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
167
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
168
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
169
FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE CASCADE ON UPDATE CASCADE
170
);
171
CREATE TABLE solution_setting_town(
172
id INT AUTO_INCREMENT UNIQUE,
173
code VARCHAR(255) NOT NULL PRIMARY KEY,
174
countryCode VARCHAR(255) NOT NULL,
175
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
176
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
177
FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE 
178
);
179
CREATE TABLE solution_setting_town_translate (
180
id  INT AUTO_INCREMENT PRIMARY KEY,
181
Label TEXT,
182
townCode VARCHAR(255) NOT NULL,
183
languageId INT NOT NULL,
184
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
185
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
186
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
187
FOREIGN KEY (townCode) REFERENCES solution_setting_town(code) ON DELETE CASCADE ON UPDATE CASCADE
188
);
189
CREATE TABLE solution_setting_sub_sector (
190
id INT AUTO_INCREMENT UNIQUE,
191
code VARCHAR(255) NOT NULL PRIMARY KEY,
192
businessSectorCode VARCHAR(255) NOT NULL,
193
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
194
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
195
FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
196
);
197
CREATE TABLE solution_setting_sub_sector_translate (
198
id  INT AUTO_INCREMENT PRIMARY KEY,
199
Label TEXT,
200
subSectorCode VARCHAR(255) NOT NULL,
201
languageId INT NOT NULL,
202
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
203
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
204
FOREIGN KEY (languageId) REFERENCES languages(id) ON DELETE CASCADE ON UPDATE CASCADE,
205
FOREIGN KEY (subSectorCode) REFERENCES solution_setting_sub_sector(code) ON DELETE CASCADE ON UPDATE CASCADE
206
);
207
/*** Company Tables ***/
208
-- Create the company table
209
CREATE TABLE company (
210
    id INT AUTO_INCREMENT PRIMARY KEY,
211
    raisonSociale VARCHAR(255) NOT NULL,
212
    logo VARCHAR(255) NULL,
213
    site VARCHAR(255) NULL,
214
    address VARCHAR(255) NULL,
215
    taxRegistration VARCHAR(255) NULL,
216
    company_type ENUM('Solution','Customer') NULL,
217
    parentId INT NOT NULL,
218
    subscription_type VARCHAR(255) NULL,
219
    company_status VARCHAR(255) NULL,
220
    companySizeCode VARCHAR(255) NULL,
221
    valueChainCode VARCHAR(255) NULL,
222
    businessSectorCode VARCHAR(255) NULL,
223
    geographicExtentCode VARCHAR(255) NULL,
224
    salesTurnoverCode VARCHAR(255) NULL,
225
    subSectorCode VARCHAR(255) NULL,
226
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
227
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
228
    FOREIGN KEY (subSectorCode) REFERENCES solution_setting_sub_sector(code) ON DELETE  SET NULL  ON UPDATE CASCADE,
229
    FOREIGN KEY (companySizeCode) REFERENCES solution_setting_company_size(code) ON DELETE  SET NULL ON UPDATE CASCADE,
230
    FOREIGN KEY (valueChainCode) REFERENCES solution_setting_value_chain(code) ON DELETE  SET NULL ON UPDATE CASCADE,
231
    FOREIGN KEY (businessSectorCode) REFERENCES solution_setting_business_sector(code) ON DELETE SET NULL ON UPDATE CASCADE,
232
    FOREIGN KEY (geographicExtentCode) REFERENCES solution_setting_geographic_extent(code) ON DELETE  SET NULL ON UPDATE CASCADE,
233
    FOREIGN KEY (salesTurnoverCode) REFERENCES solution_setting_sales_turnover(code) ON DELETE SET NULL ON UPDATE CASCADE
234
);
235

    
236
CREATE TABLE company_country (
237
    id INT AUTO_INCREMENT PRIMARY KEY,
238
    companyId INT NOT NULL,
239
    countryCode VARCHAR(255) NOT NULL,
240
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
241
    FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE ON UPDATE CASCADE,
242
    UNIQUE (companyId, countryCode)
243
);
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_files table
282
CREATE TABLE company_users_files (
283
    id INT AUTO_INCREMENT PRIMARY KEY,
284
    description TEXT,
285
    fileName VARCHAR(255),
286
    extension VARCHAR(255),
287
    size VARCHAR(255),
288
	file_type VARCHAR(255),
289
    createdAt DATETIME NULL,
290
    updatedAt DATETIME NULL,
291
    usersId INT not null,
292
    FOREIGN KEY (usersId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
293
);
294
-- Create company_entities table
295
CREATE TABLE company_entities (
296
    id INT AUTO_INCREMENT PRIMARY KEY,
297
    entity_code text NOT NULL,
298
    title text NOT NULL,
299
    state boolean NULL,
300
	entity_level INT  NULL,
301
    parentId VARCHAR(255) NOT NULL,
302
    companyId INT NOT NULL,
303
    FOREIGN KEY (companyId) REFERENCES company(id)  ON DELETE CASCADE ON UPDATE CASCADE
304
);
305
-- Create company_user_profile table
306
CREATE TABLE company_user_profile (
307
    id INT PRIMARY KEY AUTO_INCREMENT,
308
    profileId INT NOT NULL,
309
    usersId INT NOT NULL,
310
    FOREIGN KEY (profileId) REFERENCES company_profile(id)ON DELETE CASCADE ON UPDATE CASCADE ,
311
    FOREIGN KEY (usersId) REFERENCES company_users(id)ON DELETE CASCADE ON UPDATE CASCADE
312
);
313
-- Create company_user_profiles_entities table
314
CREATE TABLE company_user_profiles_entities(
315
	id INT AUTO_INCREMENT PRIMARY KEY,
316
    entitiesCompanyId INT NOT NULL,
317
    userProfileId INT NOT NULL,
318
	state boolean  NOT NULL,
319
    CONSTRAINT FK_UserProfile FOREIGN KEY (userProfileId) REFERENCES company_user_profile (id) ON DELETE CASCADE ON UPDATE CASCADE,
320
    CONSTRAINT FK_EntitiesCompany FOREIGN KEY (entitiesCompanyId) REFERENCES company_entities(id) ON DELETE CASCADE ON UPDATE CASCADE
321
);
322
-- Create company_solution_menu table
323
CREATE TABLE company_solution_menu (
324
    id INT AUTO_INCREMENT PRIMARY KEY,
325
    state BOOLEAN NOT NULL,
326
    companyId INT NOT NULL,
327
    menuCode VARCHAR(255) NOT NULL,
328
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
329
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
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
    rightId INT NULL, 
345
	libelle VARCHAR(255) NOT NULL,
346
	actif boolean null ,
347
    FOREIGN KEY (rightId) 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 AUTO_INCREMENT PRIMARY KEY,
353
    description TEXT,
354
    fileName VARCHAR(255),
355
    extension VARCHAR(255),
356
    size VARCHAR(255),
357
	file_type VARCHAR(255),
358
    createdAt DATETIME NULL,
359
    updatedAt DATETIME NULL,
360
    companyId INT not null,
361
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
362
);
363
-- Create company_profile_columns_configuration table
364
CREATE TABLE company_profile_columns_configuration (
365
    id INT AUTO_INCREMENT PRIMARY KEY,
366
    userProfileId INT NOT NULL,
367
    column_type  ENUM('compensation', 'rapport') NOT NULL,
368
    selectedColumns TEXT,
369
    CONSTRAINT userProfileId FOREIGN KEY (userProfileId) REFERENCES company_user_profile(id) ON DELETE CASCADE
370
);
371
-- Create prospecting_company table
372
CREATE TABLE prospecting_company  (
373
    id INT AUTO_INCREMENT PRIMARY KEY,
374
    firstName VARCHAR(255) NOT NULL,
375
    lastName VARCHAR(255) NOT NULL,
376
    email VARCHAR(255) NOT NULL,
377
    phone INT NULL,
378
    raisonSociale VARCHAR(255),
379
    businessSector VARCHAR(255) NOT NULL,
380
    country VARCHAR(255) NOT NULL,
381
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
382
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
383
);
384
-- Create demonstration_company_comments table
385
CREATE TABLE prospecting_company_comments (
386
    id INT AUTO_INCREMENT PRIMARY KEY,
387
    description VARCHAR(255),
388
    userId INT NOT NULL,
389
    prospectingId INT NOT NULL,
390
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
391
    FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE,
392
    FOREIGN KEY (prospectingId) REFERENCES prospecting_company(id) ON DELETE CASCADE ON UPDATE CASCADE
393
);
394
-- Create table company_activities
395
CREATE TABLE company_activities (
396
    id INT AUTO_INCREMENT PRIMARY KEY,
397
    description VARCHAR(255),
398
    activity_action ENUM('create', 'update', 'delete', 'validate', 'send email')  NULL,
399
    activity_type ENUM('company', 'user', 'email', 'company_compensation', 'profile') NULL,
400
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
401
    userId INT NULL,
402
    companyId INT NULL,
403
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
404
	FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
405
);
406
-- create notification table
407
CREATE TABLE company_notification (
408
    id INT AUTO_INCREMENT PRIMARY KEY,
409
    icon VARCHAR(255) DEFAULT NULL,
410
    image VARCHAR(255) DEFAULT NULL,
411
    title VARCHAR(255) DEFAULT NULL,
412
    description TEXT DEFAULT NULL,
413
    time DATETIME NOT NULL,
414
    link VARCHAR(255) DEFAULT NULL,
415
    useRouter BOOLEAN DEFAULT TRUE,
416
    seen BOOLEAN DEFAULT FALSE,
417
    idSource INT NOT NULL,
418
    idReceiver INT NOT NULL
419
);
420
-- Create company_meetings table
421
CREATE TABLE company_meetings (
422
  id int NOT NULL AUTO_INCREMENT,
423
  title varchar(255) NOT NULL,
424
  startDate datetime NOT NULL,
425
  endDate datetime NOT NULL,
426
  createdBy int NOT NULL,
427
  link varchar(255) NOT NULL,
428
  description text NOT NULL,
429
  createdAt datetime NOT NULL,
430
  updatedAt datetime NOT NULL,
431
  PRIMARY KEY (id)
432
);
433
-- Create company_user_meeting table
434
CREATE TABLE company_user_meeting (
435
  user_id int NOT NULL,
436
  meeting_id int NOT NULL,
437
  PRIMARY KEY (user_id, meeting_id),
438
  FOREIGN KEY (user_id) REFERENCES company_users (id) ON DELETE CASCADE ON UPDATE CASCADE,
439
  FOREIGN KEY (meeting_id) REFERENCES company_meetings (id) ON DELETE CASCADE ON UPDATE CASCADE
440
);
441
-- Create company_chats table
442
CREATE TABLE company_chats (
443
  id INT AUTO_INCREMENT PRIMARY KEY,
444
  idSource int(11),
445
  isGroup BOOLEAN
446
);
447
-- Create company_chat_messages table
448
CREATE TABLE company_chat_messages (
449
  id INT AUTO_INCREMENT PRIMARY KEY,
450
  chatId int(11),
451
  idSource int(11),
452
  isMine BOOLEAN,
453
  seen BOOLEAN,
454
  value TEXT,
455
  createdAt DATETIME,
456
  FOREIGN KEY (chatId) REFERENCES company_chats(id) ON DELETE CASCADE ON UPDATE CASCADE
457
);
458
-- Create company_chat_messages_file table
459
CREATE TABLE company_chat_messages_file (
460
    message_id INT,
461
    files_id INT,
462
    PRIMARY KEY (message_id, files_id),
463
    FOREIGN KEY (message_id) REFERENCES company_chat_messages(id) ON DELETE CASCADE ON UPDATE CASCADE,
464
    FOREIGN KEY (files_id) REFERENCES company_files(id) ON DELETE CASCADE ON UPDATE CASCADE
465
);
466
-- Create company_chat_group table
467
CREATE TABLE company_chat_group (
468
    chat_id INT,
469
    user_id INT,
470
    PRIMARY KEY (chat_id, user_id),
471
    FOREIGN KEY (chat_id) REFERENCES company_chats(id),
472
    FOREIGN KEY (user_id) REFERENCES company_users(id)
473
);
(1-1/18)