Projet

Général

Profil

US #888 » 1_init_solution.sql

ahlem belgacem, 07/02/2025 16:28

 
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_informations (
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

    
282
-- Create company_files table
283
CREATE TABLE company_users_files (
284
    id INT AUTO_INCREMENT PRIMARY KEY,
285
    description TEXT,
286
    fileName VARCHAR(255),
287
    extension VARCHAR(255),
288
    size VARCHAR(255),
289
	file_type VARCHAR(255),
290
    createdAt DATETIME NULL,
291
    updatedAt DATETIME NULL,
292
    usersId INT not null,
293
    FOREIGN KEY (usersId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
294

    
295
);
296
-- Create company_entities table
297
CREATE TABLE company_entities (
298
    id INT AUTO_INCREMENT PRIMARY KEY,
299
    entity_code text NOT NULL,
300
    title text NOT NULL,
301
    state boolean NULL,
302
	entity_level INT  NULL,
303
    parentId VARCHAR(255) NOT NULL,
304
    companyId INT NOT NULL,
305
    FOREIGN KEY (companyId) REFERENCES company(id)  ON DELETE CASCADE ON UPDATE CASCADE
306
);
307
-- Create company_user_profile table
308
CREATE TABLE company_user_profile (
309
    id INT PRIMARY KEY AUTO_INCREMENT,
310
    profileId INT NOT NULL,
311
    usersId INT NOT NULL,
312
    FOREIGN KEY (profileId) REFERENCES company_profile(id)ON DELETE CASCADE ON UPDATE CASCADE ,
313
    FOREIGN KEY (usersId) REFERENCES company_users(id)ON DELETE CASCADE ON UPDATE CASCADE
314
);
315
-- Create company_user_profiles_entities table
316
CREATE TABLE company_user_profiles_entities(
317
	id INT AUTO_INCREMENT PRIMARY KEY,
318
    entitiesCompanyId INT NOT NULL,
319
    userProfileId INT NOT NULL,
320
	state boolean  NOT NULL,
321
    CONSTRAINT FK_UserProfile FOREIGN KEY (userProfileId) REFERENCES company_user_profile (id) ON DELETE CASCADE ON UPDATE CASCADE,
322
    CONSTRAINT FK_EntitiesCompany FOREIGN KEY (entitiesCompanyId) REFERENCES company_entities(id) ON DELETE CASCADE ON UPDATE CASCADE
323
);
324
-- Create company_solution_menu table
325
CREATE TABLE company_solution_menu (
326
    id INT AUTO_INCREMENT PRIMARY KEY,
327
    state BOOLEAN NOT NULL,
328
    companyId INT NOT NULL,
329
    menuCode VARCHAR(255) NOT NULL,
330
    FOREIGN KEY (menuCode) REFERENCES solution_menu(menuCode) ON DELETE CASCADE ON UPDATE CASCADE,
331
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
332
);
333
-- Create company_solution_menu_profils table  
334
create table company_solution_menu_profils(
335
	id INT AUTO_INCREMENT PRIMARY KEY,
336
	state  boolean  NOT NULL,
337
	profileId INT NOT NULL,
338
	menuSolutionCompanyId INT NOT NULL,
339
    FOREIGN KEY (menuSolutionCompanyId) REFERENCES company_solution_menu(id) ON DELETE CASCADE ON UPDATE CASCADE,
340
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE ON UPDATE CASCADE
341
);
342
-- Create company_solution_menu_profils_droit table
343
 CREATE TABLE company_solution_menu_profils_rights (
344
   id INT AUTO_INCREMENT PRIMARY KEY,
345
    profileId INT,
346
    rightId INT NULL, 
347
	libelle VARCHAR(255) NOT NULL,
348
	actif boolean null ,
349
    FOREIGN KEY (rightId) REFERENCES solution_subscription_menu_rights(id) ON DELETE CASCADE,
350
	FOREIGN KEY (profileId) REFERENCES company_profile(id) ON DELETE CASCADE
351
);
352
-- Create company_files table
353
CREATE TABLE company_files (
354
    id INT AUTO_INCREMENT PRIMARY KEY,
355
    description TEXT,
356
    fileName VARCHAR(255),
357
    extension VARCHAR(255),
358
    size VARCHAR(255),
359
	file_type VARCHAR(255),
360
    createdAt DATETIME NULL,
361
    updatedAt DATETIME NULL,
362
    companyId INT not null,
363
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE
364
);
365

    
366

    
367
-- Create company_profile_columns_configuration table
368
CREATE TABLE company_profile_columns_configuration (
369
    id INT AUTO_INCREMENT PRIMARY KEY,
370
    userProfileId INT NOT NULL,
371
    column_type  ENUM('compensation', 'rapport') NOT NULL,
372
    selectedColumns TEXT,
373
    CONSTRAINT userProfileId FOREIGN KEY (userProfileId) REFERENCES company_user_profile(id) ON DELETE CASCADE
374
);
375
-- Create prospecting_company table
376
CREATE TABLE prospecting_company  (
377
    id INT AUTO_INCREMENT PRIMARY KEY,
378
    firstName VARCHAR(255) NOT NULL,
379
    lastName VARCHAR(255) NOT NULL,
380
    email VARCHAR(255) NOT NULL,
381
    phone INT NULL,
382
    raisonSociale VARCHAR(255),
383
    businessSector VARCHAR(255) NOT NULL,
384
    country VARCHAR(255) NOT NULL,
385
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
386
    updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
387
);
388
-- Create demonstration_company_comments table
389
CREATE TABLE prospecting_company_comments (
390
    id INT AUTO_INCREMENT PRIMARY KEY,
391
    description VARCHAR(255),
392
    userId INT NOT NULL,
393
    prospectingId INT NOT NULL,
394
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
395
    FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE,
396
    FOREIGN KEY (prospectingId) REFERENCES prospecting_company(id) ON DELETE CASCADE ON UPDATE CASCADE
397
);
398
-- Create table company_activities
399
CREATE TABLE company_activities (
400
    id INT AUTO_INCREMENT PRIMARY KEY,
401
    description VARCHAR(255),
402
    activity_action ENUM('create', 'update', 'delete', 'validate', 'send email')  NULL,
403
    activity_type ENUM('company', 'user', 'email', 'company_compensation')  NULL,
404
    createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
405
    userId INT NULL,
406
    companyId INT NULL,
407
    FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
408
	FOREIGN KEY (userId) REFERENCES company_users(id) ON DELETE CASCADE ON UPDATE CASCADE
409
);
410
-- create notification table
411
CREATE TABLE company_notification (
412
    id INT AUTO_INCREMENT PRIMARY KEY,
413
    icon VARCHAR(255) DEFAULT NULL,
414
    image VARCHAR(255) DEFAULT NULL,
415
    title VARCHAR(255) DEFAULT NULL,
416
    description TEXT DEFAULT NULL,
417
    time DATETIME NOT NULL,
418
    link VARCHAR(255) DEFAULT NULL,
419
    useRouter BOOLEAN DEFAULT TRUE,
420
    seen BOOLEAN DEFAULT FALSE,
421
    idSource INT NOT NULL,
422
    idReceiver INT NOT NULL
423
);
424
-- Create company_meetings table
425
CREATE TABLE company_meetings (
426
  id int NOT NULL AUTO_INCREMENT,
427
  title varchar(255) NOT NULL,
428
  startDate datetime NOT NULL,
429
  endDate datetime NOT NULL,
430
  createdBy int NOT NULL,
431
  link varchar(255) NOT NULL,
432
  description text NOT NULL,
433
  createdAt datetime NOT NULL,
434
  updatedAt datetime NOT NULL,
435
  PRIMARY KEY (id)
436
);
437
-- Create company_user_meeting table
438
CREATE TABLE company_user_meeting (
439
  user_id int NOT NULL,
440
  meeting_id int NOT NULL,
441
  PRIMARY KEY (user_id, meeting_id),
442
  FOREIGN KEY (user_id) REFERENCES company_users (id) ON DELETE CASCADE ON UPDATE CASCADE,
443
  FOREIGN KEY (meeting_id) REFERENCES company_meetings (id) ON DELETE CASCADE ON UPDATE CASCADE
444
);
445
-- Create company_chats table
446
CREATE TABLE company_chats (
447
  id INT AUTO_INCREMENT PRIMARY KEY,
448
  idSource int(11),
449
  isGroup BOOLEAN
450
);
451
-- Create company_chat_messages table
452
CREATE TABLE company_chat_messages (
453
  id INT AUTO_INCREMENT PRIMARY KEY,
454
  chatId int(11),
455
  idSource int(11),
456
  isMine BOOLEAN,
457
  seen BOOLEAN,
458
  value TEXT,
459
  createdAt DATETIME,
460
  FOREIGN KEY (chatId) REFERENCES company_chats(id) ON DELETE CASCADE ON UPDATE CASCADE
461
);
462
-- Create company_chat_messages_file table
463
CREATE TABLE company_chat_messages_file (
464
    message_id INT,
465
    files_id INT,
466
    PRIMARY KEY (message_id, files_id),
467
    FOREIGN KEY (message_id) REFERENCES company_chat_messages(id) ON DELETE CASCADE ON UPDATE CASCADE,
468
    FOREIGN KEY (files_id) REFERENCES company_files(id) ON DELETE CASCADE ON UPDATE CASCADE
469
);
470
-- Create company_chat_group table
471
CREATE TABLE company_chat_group (
472
    chat_id INT,
473
    user_id INT,
474
    PRIMARY KEY (chat_id, user_id),
475
    FOREIGN KEY (chat_id) REFERENCES company_chats(id),
476
    FOREIGN KEY (user_id) REFERENCES company_users(id)
477
);
(1-1/10)