@itleanchatbot/shared-models-js-postgres 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itleanchatbot/shared-models-js-postgres",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Shared Models JS Postgres",
5
5
  "main": "index.js",
6
6
  "license": "ISC",
@@ -0,0 +1,62 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.addIndex('Intentions', {
6
+ fields: ['SkillId', 'name'],
7
+ name: 'leanbot_Intentions_01',
8
+ })
9
+
10
+ await queryInterface.addIndex('IntentionValues', {
11
+ fields: ['name'],
12
+ name: 'leanbot_IntentionValues_01',
13
+ })
14
+
15
+ await queryInterface.addIndex('IntentionValues', {
16
+ fields: ['IntentionId'],
17
+ name: 'leanbot_IntentionValues_02',
18
+ })
19
+
20
+ await queryInterface.addIndex('EntityValues', {
21
+ fields: ['EntityId'],
22
+ name: 'leanbot_EntityValues_01',
23
+ })
24
+
25
+ await queryInterface.addIndex('EntityValues', {
26
+ fields: ['synonyms'],
27
+ name: 'leanbot_EntityValues_02',
28
+ })
29
+
30
+ await queryInterface.addIndex('Entities', {
31
+ fields: ['SkillId', 'name'],
32
+ name: 'leanbot_Entities_01',
33
+ })
34
+
35
+ await queryInterface.addIndex('ChannelTypes', {
36
+ fields: ['channelName'],
37
+ name: 'leanbot_ChannelTypes_01',
38
+ })
39
+
40
+ await queryInterface.addIndex('Synonyms', {
41
+ fields: ['type'],
42
+ name: 'leanbot_Synonyms_01',
43
+ })
44
+ },
45
+
46
+ down: async (queryInterface, Sequelize) => {
47
+ await queryInterface.removeIndex('Intentions', 'leanbot_Intentions_01')
48
+ await queryInterface.removeIndex(
49
+ 'IntentionValues',
50
+ 'leanbot_IntentionValues_01'
51
+ )
52
+ await queryInterface.removeIndex(
53
+ 'IntentionValues',
54
+ 'leanbot_IntentionValues_02'
55
+ )
56
+ await queryInterface.removeIndex('EntityValues', 'leanbot_EntityValues_01')
57
+ await queryInterface.removeIndex('EntityValues', 'leanbot_EntityValues_02')
58
+ await queryInterface.removeIndex('Entities', 'leanbot_Entities_01')
59
+ await queryInterface.removeIndex('ChannelTypes', 'leanbot_ChannelTypes_01')
60
+ await queryInterface.removeIndex('Synonyms', 'leanbot_Synonyms_01')
61
+ },
62
+ }
@@ -0,0 +1,27 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.changeColumn('AttendanceScaleOffs', 'hourInit', {
6
+ allowNull: true,
7
+ type: Sequelize.TIME,
8
+ })
9
+
10
+ await queryInterface.changeColumn('AttendanceScaleOffs', 'hourFinish', {
11
+ allowNull: true,
12
+ type: Sequelize.TIME,
13
+ })
14
+ },
15
+
16
+ down: async (queryInterface, Sequelize) => {
17
+ await queryInterface.changeColumn('AttendanceScaleOffs', 'hourInit', {
18
+ allowNull: false,
19
+ type: Sequelize.TIME,
20
+ })
21
+
22
+ await queryInterface.changeColumn('AttendanceScaleOffs', 'hourFinish', {
23
+ allowNull: false,
24
+ type: Sequelize.TIME,
25
+ })
26
+ },
27
+ }
@@ -0,0 +1,187 @@
1
+ 'use strict'
2
+ const remove = async (queryInterface, tableName, constraintName) => {
3
+ try {
4
+ const result = await queryInterface.removeConstraint(
5
+ tableName,
6
+ constraintName
7
+ )
8
+ return result
9
+ } catch (error) {
10
+ console.error(error)
11
+ return null
12
+ }
13
+ }
14
+ const add = async (
15
+ queryInterface,
16
+ tableName,
17
+ field,
18
+ onDelete,
19
+ onUpdate,
20
+ constraintName
21
+ ) => {
22
+ try {
23
+ const result = await queryInterface.addConstraint(tableName, {
24
+ name: constraintName,
25
+ type: 'FOREIGN KEY',
26
+ fields: [field],
27
+ references: {
28
+ table: 'DialogNodes',
29
+ field: 'id',
30
+ },
31
+ onDelete,
32
+ onUpdate,
33
+ })
34
+ return result
35
+ } catch (error) {
36
+ console.error(error)
37
+ return null
38
+ }
39
+ }
40
+ const setNull = async (queryInterface) => {
41
+ try {
42
+ const result = await queryInterface.sequelize.query(
43
+ `
44
+ update "BotIterables" set "DialogNodeId" = null where "id" in (
45
+ select distinct "b"."id"
46
+ from "BotIterables" as "b"
47
+ left join "DialogNodes" as "d"
48
+ on "b"."DialogNodeId" = "d"."id"
49
+ where "d"."id" is null
50
+ and "b"."DialogNodeId" is not null
51
+ )
52
+ `
53
+ )
54
+ return result
55
+ } catch (error) {
56
+ console.error(error)
57
+ return null
58
+ }
59
+ }
60
+ module.exports = {
61
+ up: async (queryInterface, Sequelize) => {
62
+ // BotIterables
63
+ await remove(
64
+ queryInterface,
65
+ 'BotIterables',
66
+ 'BotIterables_DialogNodeId_fkey'
67
+ )
68
+ await remove(
69
+ queryInterface,
70
+ 'BotIterables',
71
+ 'BotIterables_DialogNodeId_fkey1'
72
+ )
73
+ // DialogNodes_ApiResources
74
+ await remove(
75
+ queryInterface,
76
+ 'DialogNodes_ApiResources',
77
+ 'DialogNodes_ApiResources_DialogNodeId_fkey'
78
+ )
79
+ // DialogNodes_MultipleResponses
80
+ await remove(
81
+ queryInterface,
82
+ 'DialogNodes_MultipleResponses',
83
+ 'DialogNodes_MultipleResponses_DialogNodeId_fkey'
84
+ )
85
+ //DialogNodes
86
+ await remove(
87
+ queryInterface,
88
+ 'DialogNodes',
89
+ 'DialogNodes_DialogNodeFolderId_fkey'
90
+ )
91
+ // EndSessionTriggers
92
+ await remove(
93
+ queryInterface,
94
+ 'EndSessionTriggers',
95
+ 'EndSessionTriggers_DialogNodeId_fkey'
96
+ )
97
+ //FaqTriggers_DialogNodeId_fkey
98
+ await remove(queryInterface, 'FaqTriggers', 'FaqTriggers_DialogNodeId_fkey')
99
+ // Response_DialogNodes
100
+ await remove(
101
+ queryInterface,
102
+ 'Response_DialogNodes',
103
+ 'Response_DialogNodes_DialogNodeId_fkey'
104
+ )
105
+ // TranshipTriggers
106
+ await remove(
107
+ queryInterface,
108
+ 'TranshipTriggers',
109
+ 'TranshipTriggers_DialogNodeId_fkey'
110
+ )
111
+ },
112
+ down: async (queryInterface, Sequelize) => {
113
+ await setNull(queryInterface)
114
+ await add(
115
+ queryInterface,
116
+ 'BotIterables',
117
+ 'DialogNodeId',
118
+ 'RESTRICT',
119
+ 'CASCADE',
120
+ 'BotIterables_DialogNodeId_fkey'
121
+ )
122
+ await add(
123
+ queryInterface,
124
+ 'BotIterables',
125
+ 'DialogNodeId',
126
+ 'SET NULL',
127
+ 'CASCADE',
128
+ 'BotIterables_DialogNodeId_fkey1'
129
+ )
130
+ await add(
131
+ queryInterface,
132
+ 'DialogNodes_ApiResources',
133
+ 'DialogNodeId',
134
+ 'RESTRICT',
135
+ 'CASCADE',
136
+ 'DialogNodes_ApiResources_DialogNodeId_fkey'
137
+ )
138
+ await add(
139
+ queryInterface,
140
+ 'DialogNodes_MultipleResponses',
141
+ 'DialogNodeId',
142
+ 'RESTRICT',
143
+ 'CASCADE',
144
+ 'DialogNodes_MultipleResponses_DialogNodeId_fkey'
145
+ )
146
+ await add(
147
+ queryInterface,
148
+ 'DialogNodes',
149
+ 'DialogNodeFolderId',
150
+ 'RESTRICT',
151
+ 'CASCADE',
152
+ 'DialogNodes_DialogNodeFolderId_fkey'
153
+ )
154
+ await add(
155
+ queryInterface,
156
+ 'EndSessionTriggers',
157
+ 'DialogNodeId',
158
+ 'RESTRICT',
159
+ 'CASCADE',
160
+ 'EndSessionTriggers_DialogNodeId_fkey'
161
+ )
162
+ await add(
163
+ queryInterface,
164
+ 'FaqTriggers',
165
+ 'DialogNodeId',
166
+ 'RESTRICT',
167
+ 'CASCADE',
168
+ 'FaqTriggers_DialogNodeId_fkey'
169
+ )
170
+ await add(
171
+ queryInterface,
172
+ 'Response_DialogNodes',
173
+ 'DialogNodeId',
174
+ 'RESTRICT',
175
+ 'CASCADE',
176
+ 'Response_DialogNodes_DialogNodeId_fkey'
177
+ )
178
+ await add(
179
+ queryInterface,
180
+ 'TranshipTriggers',
181
+ 'DialogNodeId',
182
+ 'RESTRICT',
183
+ 'CASCADE',
184
+ 'TranshipTriggers_DialogNodeId_fkey'
185
+ )
186
+ },
187
+ }
@@ -0,0 +1,15 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ return queryInterface.sequelize.query(
6
+ `update "ChannelTypes" as ct
7
+ set "responsesTypes" = '[{"action":"text","display":"Texto"},{"action":"image","display":"Imagem"},{"action":"pdf","display":"PDF"},{"action":"video","display":"Vídeo"},{"action":"file","display":"Arquivo"},{"action":"simple_button","display":"Botão simples"}]'
8
+ where ct."channelName" = 'webchat'`
9
+ )
10
+ },
11
+
12
+ down: async (queryInterface, Sequelize) => {
13
+ return queryInterface.bulkDelete('ChannelTypes', null, {})
14
+ },
15
+ }
@@ -58,6 +58,7 @@ module.exports = {
58
58
  step: 1,
59
59
  replayWait: true,
60
60
  type: 'node',
61
+ hasMultipleResponse: true,
61
62
  isMultipleResponse: false,
62
63
  JumpToDialogNodeId: null,
63
64
  JumpToSkillId: null,
@@ -77,6 +78,7 @@ module.exports = {
77
78
  step: 1,
78
79
  replayWait: true,
79
80
  type: 'node',
81
+ hasMultipleResponse: false,
80
82
  isMultipleResponse: true,
81
83
  JumpToDialogNodeId: null,
82
84
  JumpToSkillId: null,
@@ -96,6 +98,7 @@ module.exports = {
96
98
  step: 2,
97
99
  replayWait: true,
98
100
  type: 'node',
101
+ hasMultipleResponse: false,
99
102
  isMultipleResponse: true,
100
103
  JumpToDialogNodeId: null,
101
104
  JumpToSkillId: null,
@@ -162,6 +162,7 @@ module.exports = {
162
162
  step: 2,
163
163
  replayWait: true,
164
164
  type: 'node',
165
+ hasMultipleResponse: true,
165
166
  isMultipleResponse: false,
166
167
  JumpToDialogNodeId: null,
167
168
  JumpToSkillId: null,
@@ -182,6 +183,7 @@ module.exports = {
182
183
  step: 3,
183
184
  replayWait: true,
184
185
  type: 'node',
186
+ hasMultipleResponse: true,
185
187
  isMultipleResponse: false,
186
188
  JumpToDialogNodeId: null,
187
189
  JumpToSkillId: null,
@@ -202,6 +204,7 @@ module.exports = {
202
204
  step: 3,
203
205
  replayWait: true,
204
206
  type: 'node',
207
+ hasMultipleResponse: true,
205
208
  isMultipleResponse: false,
206
209
  JumpToDialogNodeId: null,
207
210
  JumpToSkillId: null,
@@ -222,6 +225,7 @@ module.exports = {
222
225
  step: 4,
223
226
  replayWait: true,
224
227
  type: 'node',
228
+ hasMultipleResponse: true,
225
229
  isMultipleResponse: false,
226
230
  JumpToDialogNodeId: null,
227
231
  JumpToSkillId: null,
@@ -248,6 +252,7 @@ module.exports = {
248
252
  step: 1,
249
253
  replayWait: true,
250
254
  type: 'node',
255
+ hasMultipleResponse: true,
251
256
  isMultipleResponse: false,
252
257
  JumpToDialogNodeId: null,
253
258
  JumpToSkillId: null,
@@ -269,6 +274,7 @@ module.exports = {
269
274
  step: 1,
270
275
  replayWait: true,
271
276
  type: 'node',
277
+ hasMultipleResponse: false,
272
278
  isMultipleResponse: true,
273
279
  JumpToDialogNodeId: dialogNodeJumpLevel1Id,
274
280
  JumpToSkillId: null,
@@ -287,6 +293,7 @@ module.exports = {
287
293
  step: 2,
288
294
  replayWait: true,
289
295
  type: 'node',
296
+ hasMultipleResponse: false,
290
297
  isMultipleResponse: true,
291
298
  JumpToDialogNodeId: dialogNodeJumpLevel1Id,
292
299
  JumpToSkillId: null,
@@ -305,6 +312,7 @@ module.exports = {
305
312
  step: 3,
306
313
  replayWait: true,
307
314
  type: 'node',
315
+ hasMultipleResponse: false,
308
316
  isMultipleResponse: true,
309
317
  JumpToDialogNodeId: dialogNodeJumpLevel1Id,
310
318
  JumpToSkillId: null,
@@ -323,6 +331,7 @@ module.exports = {
323
331
  step: 4,
324
332
  replayWait: true,
325
333
  type: 'node',
334
+ hasMultipleResponse: false,
326
335
  isMultipleResponse: true,
327
336
  JumpToDialogNodeId: dialogNodeJumpLevel1Id,
328
337
  JumpToSkillId: null,
@@ -344,6 +353,7 @@ module.exports = {
344
353
  step: 1,
345
354
  replayWait: true,
346
355
  type: 'node',
356
+ hasMultipleResponse: false,
347
357
  isMultipleResponse: true,
348
358
  JumpToDialogNodeId: dialogNodeJumpLevel2Id,
349
359
  JumpToSkillId: null,
@@ -362,6 +372,7 @@ module.exports = {
362
372
  step: 2,
363
373
  replayWait: true,
364
374
  type: 'node',
375
+ hasMultipleResponse: false,
365
376
  isMultipleResponse: true,
366
377
  JumpToDialogNodeId: dialogNodeJumpLevel2Id,
367
378
  JumpToSkillId: null,
@@ -380,6 +391,7 @@ module.exports = {
380
391
  step: 3,
381
392
  replayWait: true,
382
393
  type: 'node',
394
+ hasMultipleResponse: false,
383
395
  isMultipleResponse: true,
384
396
  JumpToDialogNodeId: dialogNodeJumpLevel2Id,
385
397
  JumpToSkillId: null,
@@ -398,6 +410,7 @@ module.exports = {
398
410
  step: 4,
399
411
  replayWait: true,
400
412
  type: 'node',
413
+ hasMultipleResponse: false,
401
414
  isMultipleResponse: true,
402
415
  JumpToDialogNodeId: dialogNodeJumpLevel2Id,
403
416
  JumpToSkillId: null,
@@ -419,6 +432,7 @@ module.exports = {
419
432
  step: 1,
420
433
  replayWait: true,
421
434
  type: 'node',
435
+ hasMultipleResponse: false,
422
436
  isMultipleResponse: true,
423
437
  JumpToDialogNodeId: dialogNodeJumpLevel3Id,
424
438
  JumpToSkillId: null,
@@ -437,6 +451,7 @@ module.exports = {
437
451
  step: 2,
438
452
  replayWait: true,
439
453
  type: 'node',
454
+ hasMultipleResponse: false,
440
455
  isMultipleResponse: true,
441
456
  JumpToDialogNodeId: dialogNodeJumpLevel3Id,
442
457
  JumpToSkillId: null,
@@ -455,6 +470,7 @@ module.exports = {
455
470
  step: 3,
456
471
  replayWait: true,
457
472
  type: 'node',
473
+ hasMultipleResponse: false,
458
474
  isMultipleResponse: true,
459
475
  JumpToDialogNodeId: dialogNodeJumpLevel3Id,
460
476
  JumpToSkillId: null,
@@ -473,6 +489,7 @@ module.exports = {
473
489
  step: 4,
474
490
  replayWait: true,
475
491
  type: 'node',
492
+ hasMultipleResponse: false,
476
493
  isMultipleResponse: true,
477
494
  JumpToDialogNodeId: dialogNodeJumpLevel3Id,
478
495
  JumpToSkillId: null,
@@ -493,6 +510,7 @@ module.exports = {
493
510
  step: 1,
494
511
  replayWait: true,
495
512
  type: 'node',
513
+ hasMultipleResponse: false,
496
514
  isMultipleResponse: true,
497
515
  JumpToDialogNodeId: dialogNodeJumpLevel4Id,
498
516
  JumpToSkillId: null,
@@ -511,6 +529,7 @@ module.exports = {
511
529
  step: 2,
512
530
  replayWait: true,
513
531
  type: 'node',
532
+ hasMultipleResponse: false,
514
533
  isMultipleResponse: true,
515
534
  JumpToDialogNodeId: dialogNodeJumpLevel4Id,
516
535
  JumpToSkillId: null,
@@ -529,6 +548,7 @@ module.exports = {
529
548
  step: 3,
530
549
  replayWait: true,
531
550
  type: 'node',
551
+ hasMultipleResponse: false,
532
552
  isMultipleResponse: true,
533
553
  JumpToDialogNodeId: dialogNodeJumpLevel4Id,
534
554
  JumpToSkillId: null,
@@ -547,6 +567,7 @@ module.exports = {
547
567
  step: 4,
548
568
  replayWait: true,
549
569
  type: 'node',
570
+ hasMultipleResponse: false,
550
571
  isMultipleResponse: true,
551
572
  JumpToDialogNodeId: dialogNodeJumpLevel4Id,
552
573
  JumpToSkillId: null,
@@ -567,6 +588,7 @@ module.exports = {
567
588
  step: 1,
568
589
  replayWait: true,
569
590
  type: 'node',
591
+ hasMultipleResponse: false,
570
592
  isMultipleResponse: true,
571
593
  JumpToDialogNodeId: null,
572
594
  JumpToSkillId: null,
@@ -585,6 +607,7 @@ module.exports = {
585
607
  step: 2,
586
608
  replayWait: true,
587
609
  type: 'node',
610
+ hasMultipleResponse: false,
588
611
  isMultipleResponse: true,
589
612
  JumpToDialogNodeId: null,
590
613
  JumpToSkillId: null,
@@ -603,6 +626,7 @@ module.exports = {
603
626
  step: 3,
604
627
  replayWait: true,
605
628
  type: 'node',
629
+ hasMultipleResponse: false,
606
630
  isMultipleResponse: true,
607
631
  JumpToDialogNodeId: null,
608
632
  JumpToSkillId: null,
@@ -621,6 +645,7 @@ module.exports = {
621
645
  step: 4,
622
646
  replayWait: true,
623
647
  type: 'node',
648
+ hasMultipleResponse: false,
624
649
  isMultipleResponse: true,
625
650
  JumpToDialogNodeId: null,
626
651
  JumpToSkillId: null,
@@ -1,45 +0,0 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const Sequelize = require('sequelize')
4
- const basename = path.basename(__filename)
5
-
6
- module.exports = (config) => {
7
- const db = {}
8
- let sequelize
9
-
10
- if (config.use_env_variable) {
11
- sequelize = new Sequelize(process.env[config.use_env_variable], config)
12
- } else {
13
- sequelize = new Sequelize(
14
- config.database,
15
- config.username,
16
- config.password,
17
- config
18
- )
19
- }
20
-
21
- fs.readdirSync(__dirname)
22
- .filter((file) => {
23
- return (
24
- file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js'
25
- )
26
- })
27
- .forEach((file) => {
28
- const model = require(path.join(__dirname, file)).model(
29
- sequelize,
30
- Sequelize.DataTypes
31
- )
32
- db[model.name] = model
33
- })
34
-
35
- Object.keys(db).forEach((modelName) => {
36
- if (db[modelName].associate) {
37
- db[modelName].associate(db)
38
- }
39
- })
40
-
41
- db.sequelize = sequelize
42
- db.Sequelize = Sequelize
43
-
44
- return db
45
- }