@itleanchatbot/shared-models-js-postgres 2.0.0 → 2.1.1

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.
Files changed (175) hide show
  1. package/README.md +28 -3
  2. package/package.json +6 -4
  3. package/src/migrations/20210503142857-create-intelligences.js +1 -1
  4. package/src/migrations/20210503154612-create-skills.js +1 -1
  5. package/src/migrations/20210503162618-create-entities-values.js +1 -1
  6. package/src/migrations/20210503162752-create-synonyms.js +1 -1
  7. package/src/migrations/20210503163437-create-responses-boxes.js +1 -1
  8. package/src/migrations/20210503190515-create-apis.js +1 -1
  9. package/src/migrations/20210503191041-create-apis-resources-body.js +1 -1
  10. package/src/migrations/20210503191107-create-apis-resources.js +1 -1
  11. package/src/migrations/20210503193511-create-dialog-nodes.js +1 -1
  12. package/src/migrations/20210504144332-create-messages-hsm.js +1 -1
  13. package/src/migrations/20210727110430-create-endSessionTriggers.js +1 -1
  14. package/src/migrations/20210906144034-alter-api-body-migration.js +2 -2
  15. package/src/migrations/20210927141630-alter-attendances.js +3 -3
  16. package/src/models/apiKeys.js +1 -1
  17. package/src/models/apiResourceBodies.js +1 -1
  18. package/src/models/apiResourceHeaders.js +1 -1
  19. package/src/models/apiResourcePathParams.js +1 -1
  20. package/src/models/apiResourceQueryStringParams.js +1 -1
  21. package/src/models/apiResources.js +1 -1
  22. package/src/models/apis.js +1 -1
  23. package/src/models/attendanceScale.js +1 -1
  24. package/src/models/attendanceScaleOff.js +1 -1
  25. package/src/models/attendances.js +1 -1
  26. package/src/models/botIterable.js +1 -5
  27. package/src/models/branches.js +1 -1
  28. package/src/models/channelConfigurations.js +1 -1
  29. package/src/models/channelTypes.js +15 -1
  30. package/src/models/channels.js +1 -1
  31. package/src/models/client.js +1 -1
  32. package/src/models/comments.js +1 -1
  33. package/src/models/contacts.js +41 -0
  34. package/src/models/customPostbacks.js +1 -1
  35. package/src/models/departments.js +1 -1
  36. package/src/models/dialogNodes.js +1 -1
  37. package/src/models/dialogNodes_MultipleResponses.js +1 -1
  38. package/src/models/dialogNodes_apiResources.js +1 -1
  39. package/src/models/endSessionTriggers.js +1 -1
  40. package/src/models/enterprises.js +1 -1
  41. package/src/models/entity.js +1 -1
  42. package/src/models/entityValues.js +1 -1
  43. package/src/models/faqQuestions.js +1 -1
  44. package/src/models/faqTriggers.js +1 -1
  45. package/src/models/fields.js +28 -0
  46. package/src/models/files.js +1 -1
  47. package/src/models/groups.js +45 -0
  48. package/src/models/groupsContracts.js +13 -0
  49. package/src/models/groupsSendHsms.js +13 -0
  50. package/src/models/ibmProvider.js +1 -1
  51. package/src/models/inactivityTriggers.js +1 -1
  52. package/src/models/index.js +1 -1
  53. package/src/models/intelligence.js +1 -1
  54. package/src/models/intention.js +1 -1
  55. package/src/models/intentionValue.js +1 -1
  56. package/src/models/itleanProvider.js +1 -1
  57. package/src/models/language.js +21 -0
  58. package/src/models/lineConfigurations.js +1 -1
  59. package/src/models/lines.js +1 -1
  60. package/src/models/messagesHsm.js +6 -2
  61. package/src/models/onlineEditions.js +27 -0
  62. package/src/models/openFaqs.js +1 -1
  63. package/src/models/permissions.js +1 -1
  64. package/src/models/postbackGupshup.js +1 -1
  65. package/src/models/profile.js +1 -1
  66. package/src/models/profiles_permission.js +1 -1
  67. package/src/models/quickMessages.js +1 -1
  68. package/src/models/responseChannels.js +39 -0
  69. package/src/models/response_DialogNodes.js +1 -1
  70. package/src/models/responses.js +1 -1
  71. package/src/models/responsesBoxes.js +1 -1
  72. package/src/models/returnHsm.js +1 -1
  73. package/src/models/sendHsm.js +51 -0
  74. package/src/models/sendHsmReturnHsm.js +13 -0
  75. package/src/models/sessions.js +1 -1
  76. package/src/models/skill.js +1 -1
  77. package/src/models/socketClients.js +1 -1
  78. package/src/models/stopwords.js +1 -1
  79. package/src/models/subDepartments.js +1 -1
  80. package/src/models/synonyms.js +1 -1
  81. package/src/models/systemUsers.js +1 -1
  82. package/src/models/systemUsers_Lines.js +1 -1
  83. package/src/models/systemUsers_profiles.js +1 -1
  84. package/src/models/templates.js +1 -1
  85. package/src/models/transhipConversations.js +1 -1
  86. package/src/models/transhipInactivityTriggers.js +1 -1
  87. package/src/models/transhipTriggers.js +1 -1
  88. package/src/presenters/database/migrationHelpers.js +62 -0
  89. package/src/presenters/encryptation.js +14 -0
  90. package/src/seeders/20210505130137-insert-channel-types.js +1 -1
  91. package/src/seeders/20210505132612-insert-intelligence.js +3 -3
  92. package/src/seeders/20210505134700-insert-profiles-permissions.js +3 -3
  93. package/src/seeders/20210505135931-insert-system-users.js +2 -2
  94. package/src/seeders/20210505140259-insert-itlean-provider.js +3 -3
  95. package/src/seeders/20210505140343-insert-templates.js +2 -3
  96. package/src/seeders/20210902160430-insert-apiKey.js +1 -1
  97. package/src/seeders/test/20200924195050-create-ibmprovider.js +38 -0
  98. package/src/seeders/test/20200924195050-create-itlean-provider.js +40 -0
  99. package/src/seeders/test/20200924195050-seed-enterprises.js +24 -0
  100. package/src/seeders/test/20200925184253-seed-skils-itlean-provider.js +37 -0
  101. package/src/seeders/test/20200925184253-seed-skils.js +41 -0
  102. package/src/seeders/test/20200925184254-seed-Intention.js +39 -0
  103. package/src/seeders/test/20200925184258-seed-Intention-values.js +41 -0
  104. package/src/seeders/test/20200925191642-seed-entity-skill-itlean.js +23 -0
  105. package/src/seeders/test/20200925191642-seed-entity.js +23 -0
  106. package/src/seeders/test/20200925191643-seed-entity-values-skill-itlean.js +32 -0
  107. package/src/seeders/test/20200925191643-seed-entity-values.js +33 -0
  108. package/src/seeders/test/20200929132705-seed-dialog-node.js +128 -0
  109. package/src/seeders/test/20201016200600-seed-responses.js +563 -0
  110. package/src/seeders/test/20201104183653-seed-create-ype-skill.js +42 -0
  111. package/src/seeders/test/20201104183700-seed-create-ype-intention.js +26 -0
  112. package/src/seeders/test/20201104183706-seed-create-ype-intention-values.js +70 -0
  113. package/src/seeders/test/20201104183714-seed-create-ype-entity.js +38 -0
  114. package/src/seeders/test/20201104183723-seed-create-ype-entity-values.js +243 -0
  115. package/src/seeders/test/20201104183727-seed-create-ype-synonyms.js +253 -0
  116. package/src/seeders/test/20201104202534-seed-create-ype-node-saudacao.js +124 -0
  117. package/src/seeders/test/20210224171409-create-apiResource.js +114 -0
  118. package/src/seeders/test/20210422144458-seed-context-test.js +175 -0
  119. package/src/seeders/test/20210422181114-seed-jump-node.js +123 -0
  120. package/src/seeders/test/20210422182413-seed-jump-skill.js +123 -0
  121. package/src/seeders/test/20210426100156-seed-api-test.js +138 -0
  122. package/src/seeders/test/20210426103704-seed-multiple-response-test.js +272 -0
  123. package/src/seeders/test/20210426190844-seed-entity-search-test.js +160 -0
  124. package/src/seeders/test/20210427172150-seed-test-with-input-test-fisrt.js +160 -0
  125. package/src/seeders/test/20210428105402-seed-test-condition-1.js +190 -0
  126. package/src/seeders/test/20210430181906-seed-test-input-text-zero.js +120 -0
  127. package/src/seeders/test/20210430183204-seed-ype-test-condition.js +557 -0
  128. package/src/seeders/test/20210503172321-seed-invalid-condition.js +119 -0
  129. package/src/seeders/test/20210505140225-insert-skills.js +41 -0
  130. package/src/seeders/test/20210505183810-seed-chain-with-context.js +147 -0
  131. package/src/seeders/test/20210506125701-seed-with-intention-and-entity-same-name.js +188 -0
  132. package/src/seeders/test/20210507204437-seed-condition-igual-true.js +119 -0
  133. package/src/seeders/test/20210511181006-seed-using-internal-functions.js +274 -0
  134. package/src/seeders/test/20210512140152-seed-ype-real-bot.js +2578 -0
  135. package/src/seeders/test/20210519162746-seed-response-with-context.js +186 -0
  136. package/src/seeders/test/20210524141819-seed-dialog-node-faq.js +244 -0
  137. package/src/seeders/test/20210525180523-seed-regex.js +173 -0
  138. package/src/seeders/test/20210602111930-insert-dialogNodes.js +200 -0
  139. package/src/seeders/test/20210610152534-seed-test-internal-function-in-context.js +216 -0
  140. package/src/seeders/test/20210610181308-seed-test-find-in-array-internal-function.js +147 -0
  141. package/src/seeders/test/20210611101042-bot-example-internal-functions.js +985 -0
  142. package/src/seeders/test/20210613111900-bot-example-api.js +420 -0
  143. package/src/seeders/test/20210614113654-miltiple-response-with-research.js +387 -0
  144. package/src/seeders/test/20210616212102-api-authentication-and-list.js +422 -0
  145. package/src/seeders/test/20210624172310-seed-api-duble-request.js +424 -0
  146. package/src/seeders/test/20210628135630-test-branches.js +224 -0
  147. package/src/seeders/test/20210629141030-test-departments.js +225 -0
  148. package/src/seeders/test/20210630105430-test-subDepartments.js +223 -0
  149. package/src/seeders/test/20210630114011-test-contact.js +178 -0
  150. package/src/seeders/test/20210701130630-test-channels.js +381 -0
  151. package/src/seeders/test/20210702191230-seed-test-counter-in-context.js +122 -0
  152. package/src/seeders/test/20210705061313-test-fields.js +152 -0
  153. package/src/seeders/test/20210705080813-test-groups.js +122 -0
  154. package/src/seeders/test/20210705105918-seed-test-function-slice.js +161 -0
  155. package/src/seeders/test/20210706105508-seed-node-without-condition.js +254 -0
  156. package/src/seeders/test/20210706112906-seed-1.0-on-response.js +172 -0
  157. package/src/seeders/test/20210706145547-seed-clean-context.js +132 -0
  158. package/src/seeders/test/20210707151538-seed-test-response-break-line.js +161 -0
  159. package/src/seeders/test/20210713155530-seed-test-itl0079-875.js +129 -0
  160. package/src/seeders/test/20210715125619-seed-multiple-response-with-several-jumps.js +764 -0
  161. package/src/seeders/test/20210715163606-seed-test-multiple-response-with-jump.js +250 -0
  162. package/src/seeders/test/20210719154025-seed-2-contexts-together.js +133 -0
  163. package/src/seeders/test/20210802144227-seed-end-session-trigger.js +163 -0
  164. package/src/seeders/test/20210803103030-tests-dialogNodes.js +406 -0
  165. package/src/seeders/test/20210804094630-tests-lines.js +487 -0
  166. package/src/seeders/test/20210805104130-tests-lineConfigurations.js +106 -0
  167. package/src/seeders/test/20210805133330-tests-systemUsers.js +507 -0
  168. package/src/seeders/test/20210813124630-tests-getMessagesBySession.js +333 -0
  169. package/src/seeders/test/20210816151830-testes-inactivityTriggers.js +196 -0
  170. package/src/seeders/test/20210830134230-tests-sessionReports.js +254 -0
  171. package/src/seeders/test/20210830165830-tests-attendancesHistory.js +181 -0
  172. package/src/seeders/test/20210927115821-skill-test-open-faq.js +37 -0
  173. package/src/seeders/test/20211004131813-true-and-context-with-parent.js +190 -0
  174. package/src/seeders/test/20211006210203-context-concat-with-text.js +193 -0
  175. package/src/migrations/20210613125036-unnamed-migration.js +0 -21
@@ -0,0 +1,764 @@
1
+ 'use strict'
2
+ const { Op } = require('sequelize')
3
+ const SkillId = '2e686fdd-c812-458a-b1ba-98069bf4c15c'
4
+
5
+ const dialogNodeInitId = '8c858119-4d89-4c7f-bb04-cc65f56adddf'
6
+
7
+ const dialogNodeMultiResponse1Level1Id = 'd6a4fdc5-5957-4956-8b2c-eb6e09a05986'
8
+ const dialogNodeMultiResponse2Level1Id = 'ca480d2f-9a94-4984-b71c-6c6db7bdd48b'
9
+ const dialogNodeMultiResponse3Level1Id = 'c75cc759-f4d3-4343-bd40-1f960ffb3d10'
10
+ const dialogNodeMultiResponse4Level1Id = 'bccd96e1-16b7-4f23-89e8-b8f9726d3ea1'
11
+
12
+ const dialogNodeMultiResponse1JumpLevel1Id =
13
+ '9107f01a-93c3-456e-acf9-6a4077d67ac5'
14
+ const dialogNodeMultiResponse2JumpLevel1Id =
15
+ '9ec3b806-a85c-47eb-8ac7-6d28a019678a'
16
+ const dialogNodeMultiResponse3JumpLevel1Id =
17
+ '36124ac3-126d-4e24-afb7-cc314397b459'
18
+ const dialogNodeMultiResponse4JumpLevel1Id =
19
+ 'f57f48e1-786f-4ef8-a1c7-cfe6dbac1c20'
20
+
21
+ const dialogNodeMultiResponse1JumpLevel2Id =
22
+ '8fb27259-da97-46d8-8c8c-a9cda604fe2c'
23
+ const dialogNodeMultiResponse2JumpLevel2Id =
24
+ 'c3c8545f-c66b-4334-acde-107ceae3de13'
25
+ const dialogNodeMultiResponse3JumpLevel2Id =
26
+ '6bb3f597-82cc-4539-9644-5c0700faffde'
27
+ const dialogNodeMultiResponse4JumpLevel2Id =
28
+ 'd4c27d8b-838d-4628-84d7-99ba7a54c907'
29
+
30
+ const dialogNodeMultiResponse1JumpLevel3Id =
31
+ 'f8bd14ae-4236-43f6-b698-e4043525b4a7'
32
+ const dialogNodeMultiResponse2JumpLevel3Id =
33
+ '43aac048-8268-4d8f-8683-81abe686e9b0'
34
+ const dialogNodeMultiResponse3JumpLevel3Id =
35
+ 'dfd05a26-b360-4805-bb3f-9bcf21fe21f1'
36
+ const dialogNodeMultiResponse4JumpLevel3Id =
37
+ 'd15865a7-505f-4400-af45-1a240e4c4256'
38
+
39
+ const dialogNodeMultiResponse1JumpLevel4Id =
40
+ 'c80de950-9da2-4515-8d4c-e20e861a3208'
41
+ const dialogNodeMultiResponse2JumpLevel4Id =
42
+ 'e7f04f8d-d6c9-4879-8343-b8372d8ec9f4'
43
+ const dialogNodeMultiResponse3JumpLevel4Id =
44
+ '5d0c865a-75b6-41a9-915b-0fea9fa21216'
45
+ const dialogNodeMultiResponse4JumpLevel4Id =
46
+ '946d77ae-d39d-4742-a9b4-a25bbb3c1b90'
47
+
48
+ const dialogNodeJumpLevel1Id = '798c8086-1f9c-4427-957a-59f5d5160aa5'
49
+ const dialogNodeJumpLevel2Id = 'b9961e58-51b1-463b-bdea-69279aaac8b4'
50
+ const dialogNodeJumpLevel3Id = 'b13339e8-62c4-4c92-8b7c-a8091617af2a'
51
+ const dialogNodeJumpLevel4Id = 'e5064c33-8d29-4ed5-9c37-93c373a6a629'
52
+
53
+ const responseId1 = 'e3632588-a820-4b54-9a74-3151ce6c3407'
54
+
55
+ const nodesIds = [dialogNodeInitId]
56
+
57
+ const jumps = [
58
+ dialogNodeJumpLevel1Id,
59
+ dialogNodeJumpLevel2Id,
60
+ dialogNodeJumpLevel3Id,
61
+ dialogNodeJumpLevel4Id,
62
+ ]
63
+
64
+ const multipleResponsesLevel1NodesIds = [
65
+ dialogNodeMultiResponse1Level1Id,
66
+ dialogNodeMultiResponse2Level1Id,
67
+ dialogNodeMultiResponse3Level1Id,
68
+ dialogNodeMultiResponse4Level1Id,
69
+ ]
70
+
71
+ const multipleResponsesJumpLevel1Ids = [
72
+ dialogNodeMultiResponse1JumpLevel1Id,
73
+ dialogNodeMultiResponse2JumpLevel1Id,
74
+ dialogNodeMultiResponse3JumpLevel1Id,
75
+ dialogNodeMultiResponse4JumpLevel1Id,
76
+ ]
77
+
78
+ const multipleResponsesJumpLevel2Ids = [
79
+ dialogNodeMultiResponse1JumpLevel2Id,
80
+ dialogNodeMultiResponse2JumpLevel2Id,
81
+ dialogNodeMultiResponse3JumpLevel2Id,
82
+ dialogNodeMultiResponse4JumpLevel2Id,
83
+ ]
84
+
85
+ const multipleResponsesJumpLevel3Ids = [
86
+ dialogNodeMultiResponse1JumpLevel3Id,
87
+ dialogNodeMultiResponse2JumpLevel3Id,
88
+ dialogNodeMultiResponse3JumpLevel3Id,
89
+ dialogNodeMultiResponse4JumpLevel3Id,
90
+ ]
91
+
92
+ const multipleResponsesJumpLevel4Ids = [
93
+ dialogNodeMultiResponse1JumpLevel4Id,
94
+ dialogNodeMultiResponse2JumpLevel4Id,
95
+ dialogNodeMultiResponse3JumpLevel4Id,
96
+ dialogNodeMultiResponse4JumpLevel4Id,
97
+ ]
98
+
99
+ const responsesDialogNodesIds = [
100
+ ...nodesIds,
101
+ ...jumps,
102
+ ...multipleResponsesLevel1NodesIds,
103
+ ...multipleResponsesJumpLevel1Ids,
104
+ ...multipleResponsesJumpLevel2Ids,
105
+ ...multipleResponsesJumpLevel3Ids,
106
+ ...multipleResponsesJumpLevel4Ids,
107
+ ]
108
+
109
+ module.exports = {
110
+ up: async (queryInterface, Sequelize) => {
111
+ const IntelligenceId = await queryInterface.rawSelect(
112
+ 'Intelligences',
113
+ {
114
+ where: {
115
+ providerType: 'itlean',
116
+ },
117
+ },
118
+ ['id']
119
+ )
120
+
121
+ const providerId = 'fe588d1c-cd6d-4b5a-b385-f3ef19348f04'
122
+
123
+ const ChannelTypeId = await queryInterface.rawSelect(
124
+ 'ChannelTypes',
125
+ { where: { channelName: 'webchat' } },
126
+ ['id']
127
+ )
128
+
129
+ await queryInterface.bulkInsert(
130
+ 'Skills',
131
+ [
132
+ {
133
+ id: SkillId,
134
+ IntelligenceId,
135
+ AwsProviderId: null,
136
+ ItleanProviderId: providerId,
137
+ IbmProviderId: null,
138
+ name: 'Skill test',
139
+ description: 'seed test - multiple response with several jumps',
140
+ lang: 'pt-br',
141
+ createdAt: Sequelize.literal('now()'),
142
+ updatedAt: Sequelize.literal('now()'),
143
+ },
144
+ ],
145
+ {}
146
+ )
147
+
148
+ // Create Dialog Nodes
149
+ // Jumps
150
+ await queryInterface.bulkInsert(
151
+ 'DialogNodes',
152
+ [
153
+ // Jump with multiple responses level 1
154
+ {
155
+ id: dialogNodeJumpLevel1Id,
156
+ name: 'jump_level_1',
157
+ condition: null,
158
+ SkillId,
159
+ contexts: JSON.stringify({
160
+ node: 'jump_level_1',
161
+ }),
162
+ step: 2,
163
+ replayWait: true,
164
+ type: 'node',
165
+ isMultipleResponse: false,
166
+ JumpToDialogNodeId: null,
167
+ JumpToSkillId: null,
168
+ DialogNodeFolderId: null,
169
+ createdAt: Sequelize.literal('now()'),
170
+ updatedAt: Sequelize.literal('now()'),
171
+ },
172
+
173
+ // Jump with multiple responses level 2
174
+ {
175
+ id: dialogNodeJumpLevel2Id,
176
+ name: 'jump_level_2',
177
+ condition: null,
178
+ SkillId,
179
+ contexts: JSON.stringify({
180
+ node: 'jump_level_2',
181
+ }),
182
+ step: 3,
183
+ replayWait: true,
184
+ type: 'node',
185
+ isMultipleResponse: false,
186
+ JumpToDialogNodeId: null,
187
+ JumpToSkillId: null,
188
+ DialogNodeFolderId: null,
189
+ createdAt: Sequelize.literal('now()'),
190
+ updatedAt: Sequelize.literal('now()'),
191
+ },
192
+
193
+ // Jump with multiple responses level 3
194
+ {
195
+ id: dialogNodeJumpLevel3Id,
196
+ name: 'jump_level_3',
197
+ condition: null,
198
+ SkillId,
199
+ contexts: JSON.stringify({
200
+ node: 'jump_level_3',
201
+ }),
202
+ step: 3,
203
+ replayWait: true,
204
+ type: 'node',
205
+ isMultipleResponse: false,
206
+ JumpToDialogNodeId: null,
207
+ JumpToSkillId: null,
208
+ DialogNodeFolderId: null,
209
+ createdAt: Sequelize.literal('now()'),
210
+ updatedAt: Sequelize.literal('now()'),
211
+ },
212
+
213
+ // Jump with multiple responses level 4
214
+ {
215
+ id: dialogNodeJumpLevel4Id,
216
+ name: 'jump_level_4',
217
+ condition: null,
218
+ SkillId,
219
+ contexts: JSON.stringify({
220
+ node: 'jump_level_4',
221
+ }),
222
+ step: 4,
223
+ replayWait: true,
224
+ type: 'node',
225
+ isMultipleResponse: false,
226
+ JumpToDialogNodeId: null,
227
+ JumpToSkillId: null,
228
+ DialogNodeFolderId: null,
229
+ createdAt: Sequelize.literal('now()'),
230
+ updatedAt: Sequelize.literal('now()'),
231
+ },
232
+ ],
233
+ {}
234
+ )
235
+
236
+ // Another Dialog Nodes
237
+ await queryInterface.bulkInsert(
238
+ 'DialogNodes',
239
+ [
240
+ {
241
+ id: dialogNodeInitId,
242
+ name: 'init',
243
+ condition: 'true',
244
+ SkillId,
245
+ contexts: JSON.stringify({
246
+ node: 'init_flow',
247
+ }),
248
+ step: 1,
249
+ replayWait: true,
250
+ type: 'node',
251
+ isMultipleResponse: false,
252
+ JumpToDialogNodeId: null,
253
+ JumpToSkillId: null,
254
+ DialogNodeFolderId: null,
255
+ createdAt: Sequelize.literal('now()'),
256
+ updatedAt: Sequelize.literal('now()'),
257
+ },
258
+
259
+ // Multiple responses level 1
260
+
261
+ {
262
+ id: dialogNodeMultiResponse1Level1Id,
263
+ name: 'multiple_response_1_level_1',
264
+ condition: 'input.text === response_1',
265
+ SkillId,
266
+ contexts: JSON.stringify({
267
+ node: 'multiple_response_1_level_1',
268
+ }),
269
+ step: 1,
270
+ replayWait: true,
271
+ type: 'node',
272
+ isMultipleResponse: true,
273
+ JumpToDialogNodeId: dialogNodeJumpLevel1Id,
274
+ JumpToSkillId: null,
275
+ DialogNodeFolderId: null,
276
+ createdAt: Sequelize.literal('now()'),
277
+ updatedAt: Sequelize.literal('now()'),
278
+ },
279
+ {
280
+ id: dialogNodeMultiResponse2Level1Id,
281
+ name: 'multiple_response_2_level_1',
282
+ condition: 'input.text === response_2',
283
+ SkillId,
284
+ contexts: JSON.stringify({
285
+ node: 'multiple_response_2_level_1',
286
+ }),
287
+ step: 2,
288
+ replayWait: true,
289
+ type: 'node',
290
+ isMultipleResponse: true,
291
+ JumpToDialogNodeId: dialogNodeJumpLevel1Id,
292
+ JumpToSkillId: null,
293
+ DialogNodeFolderId: null,
294
+ createdAt: Sequelize.literal('now()'),
295
+ updatedAt: Sequelize.literal('now()'),
296
+ },
297
+ {
298
+ id: dialogNodeMultiResponse3Level1Id,
299
+ name: 'multiple_response_3_level_1',
300
+ condition: 'input.text === response_3',
301
+ SkillId,
302
+ contexts: JSON.stringify({
303
+ node: 'multiple_response_3_level_1',
304
+ }),
305
+ step: 3,
306
+ replayWait: true,
307
+ type: 'node',
308
+ isMultipleResponse: true,
309
+ JumpToDialogNodeId: dialogNodeJumpLevel1Id,
310
+ JumpToSkillId: null,
311
+ DialogNodeFolderId: null,
312
+ createdAt: Sequelize.literal('now()'),
313
+ updatedAt: Sequelize.literal('now()'),
314
+ },
315
+ {
316
+ id: dialogNodeMultiResponse4Level1Id,
317
+ name: 'multiple_response_4_level_1',
318
+ condition: 'input.text === response_4',
319
+ SkillId,
320
+ contexts: JSON.stringify({
321
+ node: 'multiple_response_4_level_1',
322
+ }),
323
+ step: 4,
324
+ replayWait: true,
325
+ type: 'node',
326
+ isMultipleResponse: true,
327
+ JumpToDialogNodeId: dialogNodeJumpLevel1Id,
328
+ JumpToSkillId: null,
329
+ DialogNodeFolderId: null,
330
+ createdAt: Sequelize.literal('now()'),
331
+ updatedAt: Sequelize.literal('now()'),
332
+ },
333
+
334
+ // Multiple Responses Of Jump level 1
335
+
336
+ {
337
+ id: dialogNodeMultiResponse1JumpLevel1Id,
338
+ name: 'multiple_response_1_jump_level_1',
339
+ condition: 'input.text === response_1',
340
+ SkillId,
341
+ contexts: JSON.stringify({
342
+ node: 'multiple_response_1_jump_level_1',
343
+ }),
344
+ step: 1,
345
+ replayWait: true,
346
+ type: 'node',
347
+ isMultipleResponse: true,
348
+ JumpToDialogNodeId: dialogNodeJumpLevel2Id,
349
+ JumpToSkillId: null,
350
+ DialogNodeFolderId: null,
351
+ createdAt: Sequelize.literal('now()'),
352
+ updatedAt: Sequelize.literal('now()'),
353
+ },
354
+ {
355
+ id: dialogNodeMultiResponse2JumpLevel1Id,
356
+ name: 'multiple_response_2_jump_level_1',
357
+ condition: 'input.text === response_2',
358
+ SkillId,
359
+ contexts: JSON.stringify({
360
+ node: 'multiple_response_2_jump_level_1',
361
+ }),
362
+ step: 2,
363
+ replayWait: true,
364
+ type: 'node',
365
+ isMultipleResponse: true,
366
+ JumpToDialogNodeId: dialogNodeJumpLevel2Id,
367
+ JumpToSkillId: null,
368
+ DialogNodeFolderId: null,
369
+ createdAt: Sequelize.literal('now()'),
370
+ updatedAt: Sequelize.literal('now()'),
371
+ },
372
+ {
373
+ id: dialogNodeMultiResponse3JumpLevel1Id,
374
+ name: 'multiple_response_3_jump_level_1',
375
+ condition: 'input.text === response_3',
376
+ SkillId,
377
+ contexts: JSON.stringify({
378
+ node: 'multiple_response_3_jump_level_1',
379
+ }),
380
+ step: 3,
381
+ replayWait: true,
382
+ type: 'node',
383
+ isMultipleResponse: true,
384
+ JumpToDialogNodeId: dialogNodeJumpLevel2Id,
385
+ JumpToSkillId: null,
386
+ DialogNodeFolderId: null,
387
+ createdAt: Sequelize.literal('now()'),
388
+ updatedAt: Sequelize.literal('now()'),
389
+ },
390
+ {
391
+ id: dialogNodeMultiResponse4JumpLevel1Id,
392
+ name: 'multiple_response_4_jump_level_1',
393
+ condition: 'input.text === response_4',
394
+ SkillId,
395
+ contexts: JSON.stringify({
396
+ node: 'multiple_response_4_jump_level_1',
397
+ }),
398
+ step: 4,
399
+ replayWait: true,
400
+ type: 'node',
401
+ isMultipleResponse: true,
402
+ JumpToDialogNodeId: dialogNodeJumpLevel2Id,
403
+ JumpToSkillId: null,
404
+ DialogNodeFolderId: null,
405
+ createdAt: Sequelize.literal('now()'),
406
+ updatedAt: Sequelize.literal('now()'),
407
+ },
408
+
409
+ // Multiple Responses Of Jump Level 2
410
+
411
+ {
412
+ id: dialogNodeMultiResponse1JumpLevel2Id,
413
+ name: 'multiple_response_1_jump_level_2',
414
+ condition: 'input.text === response_1',
415
+ SkillId,
416
+ contexts: JSON.stringify({
417
+ node: 'multiple_response_1_jump_level_2',
418
+ }),
419
+ step: 1,
420
+ replayWait: true,
421
+ type: 'node',
422
+ isMultipleResponse: true,
423
+ JumpToDialogNodeId: dialogNodeJumpLevel3Id,
424
+ JumpToSkillId: null,
425
+ DialogNodeFolderId: null,
426
+ createdAt: Sequelize.literal('now()'),
427
+ updatedAt: Sequelize.literal('now()'),
428
+ },
429
+ {
430
+ id: dialogNodeMultiResponse2JumpLevel2Id,
431
+ name: 'multiple_response_2_jump_level_2',
432
+ condition: 'input.text === response_2',
433
+ SkillId,
434
+ contexts: JSON.stringify({
435
+ node: 'multiple_response_2_jump_level_2',
436
+ }),
437
+ step: 2,
438
+ replayWait: true,
439
+ type: 'node',
440
+ isMultipleResponse: true,
441
+ JumpToDialogNodeId: dialogNodeJumpLevel3Id,
442
+ JumpToSkillId: null,
443
+ DialogNodeFolderId: null,
444
+ createdAt: Sequelize.literal('now()'),
445
+ updatedAt: Sequelize.literal('now()'),
446
+ },
447
+ {
448
+ id: dialogNodeMultiResponse3JumpLevel2Id,
449
+ name: 'multiple_response_3_jump_level_2',
450
+ condition: 'input.text === response_3',
451
+ SkillId,
452
+ contexts: JSON.stringify({
453
+ node: 'multiple_response_3_jump_level_2',
454
+ }),
455
+ step: 3,
456
+ replayWait: true,
457
+ type: 'node',
458
+ isMultipleResponse: true,
459
+ JumpToDialogNodeId: dialogNodeJumpLevel3Id,
460
+ JumpToSkillId: null,
461
+ DialogNodeFolderId: null,
462
+ createdAt: Sequelize.literal('now()'),
463
+ updatedAt: Sequelize.literal('now()'),
464
+ },
465
+ {
466
+ id: dialogNodeMultiResponse4JumpLevel2Id,
467
+ name: 'multiple_response_4_jump_level_2',
468
+ condition: 'input.text === response_4',
469
+ SkillId,
470
+ contexts: JSON.stringify({
471
+ node: 'multiple_response_4_jump_level_2',
472
+ }),
473
+ step: 4,
474
+ replayWait: true,
475
+ type: 'node',
476
+ isMultipleResponse: true,
477
+ JumpToDialogNodeId: dialogNodeJumpLevel3Id,
478
+ JumpToSkillId: null,
479
+ DialogNodeFolderId: null,
480
+ createdAt: Sequelize.literal('now()'),
481
+ updatedAt: Sequelize.literal('now()'),
482
+ },
483
+
484
+ // Multiple Responses Of Jump Level 3
485
+ {
486
+ id: dialogNodeMultiResponse1JumpLevel3Id,
487
+ name: 'multiple_response_1_jump_level_3',
488
+ condition: 'input.text === response_1',
489
+ SkillId,
490
+ contexts: JSON.stringify({
491
+ node: 'multiple_response_1_jump_level_3',
492
+ }),
493
+ step: 1,
494
+ replayWait: true,
495
+ type: 'node',
496
+ isMultipleResponse: true,
497
+ JumpToDialogNodeId: dialogNodeJumpLevel4Id,
498
+ JumpToSkillId: null,
499
+ DialogNodeFolderId: null,
500
+ createdAt: Sequelize.literal('now()'),
501
+ updatedAt: Sequelize.literal('now()'),
502
+ },
503
+ {
504
+ id: dialogNodeMultiResponse2JumpLevel3Id,
505
+ name: 'multiple_response_2_jump_level_3',
506
+ condition: 'input.text === response_2',
507
+ SkillId,
508
+ contexts: JSON.stringify({
509
+ node: 'multiple_response_2_jump_level_3',
510
+ }),
511
+ step: 2,
512
+ replayWait: true,
513
+ type: 'node',
514
+ isMultipleResponse: true,
515
+ JumpToDialogNodeId: dialogNodeJumpLevel4Id,
516
+ JumpToSkillId: null,
517
+ DialogNodeFolderId: null,
518
+ createdAt: Sequelize.literal('now()'),
519
+ updatedAt: Sequelize.literal('now()'),
520
+ },
521
+ {
522
+ id: dialogNodeMultiResponse3JumpLevel3Id,
523
+ name: 'multiple_response_3_jump_level_3',
524
+ condition: 'input.text === response_3',
525
+ SkillId,
526
+ contexts: JSON.stringify({
527
+ node: 'multiple_response_3_jump_level_3',
528
+ }),
529
+ step: 3,
530
+ replayWait: true,
531
+ type: 'node',
532
+ isMultipleResponse: true,
533
+ JumpToDialogNodeId: dialogNodeJumpLevel4Id,
534
+ JumpToSkillId: null,
535
+ DialogNodeFolderId: null,
536
+ createdAt: Sequelize.literal('now()'),
537
+ updatedAt: Sequelize.literal('now()'),
538
+ },
539
+ {
540
+ id: dialogNodeMultiResponse4JumpLevel3Id,
541
+ name: 'multiple_response_4_jump_level_3',
542
+ condition: 'input.text === response_4',
543
+ SkillId,
544
+ contexts: JSON.stringify({
545
+ node: 'multiple_response_4_jump_level_3',
546
+ }),
547
+ step: 4,
548
+ replayWait: true,
549
+ type: 'node',
550
+ isMultipleResponse: true,
551
+ JumpToDialogNodeId: dialogNodeJumpLevel4Id,
552
+ JumpToSkillId: null,
553
+ DialogNodeFolderId: null,
554
+ createdAt: Sequelize.literal('now()'),
555
+ updatedAt: Sequelize.literal('now()'),
556
+ },
557
+
558
+ // Multiple Responses Of Jump Level 4
559
+ {
560
+ id: dialogNodeMultiResponse1JumpLevel4Id,
561
+ name: 'multiple_response_1_jump_level_4',
562
+ condition: 'input.text === response_1',
563
+ SkillId,
564
+ contexts: JSON.stringify({
565
+ node: 'multiple_response_1_jump_level_4',
566
+ }),
567
+ step: 1,
568
+ replayWait: true,
569
+ type: 'node',
570
+ isMultipleResponse: true,
571
+ JumpToDialogNodeId: null,
572
+ JumpToSkillId: null,
573
+ DialogNodeFolderId: null,
574
+ createdAt: Sequelize.literal('now()'),
575
+ updatedAt: Sequelize.literal('now()'),
576
+ },
577
+ {
578
+ id: dialogNodeMultiResponse2JumpLevel4Id,
579
+ name: 'multiple_response_2_jump_level_4',
580
+ condition: 'input.text === response_2',
581
+ SkillId,
582
+ contexts: JSON.stringify({
583
+ node: 'multiple_response_2_jump_level_4',
584
+ }),
585
+ step: 2,
586
+ replayWait: true,
587
+ type: 'node',
588
+ isMultipleResponse: true,
589
+ JumpToDialogNodeId: null,
590
+ JumpToSkillId: null,
591
+ DialogNodeFolderId: null,
592
+ createdAt: Sequelize.literal('now()'),
593
+ updatedAt: Sequelize.literal('now()'),
594
+ },
595
+ {
596
+ id: dialogNodeMultiResponse3JumpLevel4Id,
597
+ name: 'multiple_response_3_jump_level_4',
598
+ condition: 'input.text === response_3',
599
+ SkillId,
600
+ contexts: JSON.stringify({
601
+ node: 'multiple_response_3_jump_level_4',
602
+ }),
603
+ step: 3,
604
+ replayWait: true,
605
+ type: 'node',
606
+ isMultipleResponse: true,
607
+ JumpToDialogNodeId: null,
608
+ JumpToSkillId: null,
609
+ DialogNodeFolderId: null,
610
+ createdAt: Sequelize.literal('now()'),
611
+ updatedAt: Sequelize.literal('now()'),
612
+ },
613
+ {
614
+ id: dialogNodeMultiResponse4JumpLevel4Id,
615
+ name: 'multiple_response_4_jump_level_4',
616
+ condition: 'input.text === response_4',
617
+ SkillId,
618
+ contexts: JSON.stringify({
619
+ node: 'multiple_response_4_jump_level_4',
620
+ }),
621
+ step: 4,
622
+ replayWait: true,
623
+ type: 'node',
624
+ isMultipleResponse: true,
625
+ JumpToDialogNodeId: null,
626
+ JumpToSkillId: null,
627
+ DialogNodeFolderId: null,
628
+ createdAt: Sequelize.literal('now()'),
629
+ updatedAt: Sequelize.literal('now()'),
630
+ },
631
+ ],
632
+ {}
633
+ )
634
+
635
+ await queryInterface.bulkInsert(
636
+ 'Responses',
637
+ [
638
+ {
639
+ id: responseId1,
640
+ name: 'default_response',
641
+ SkillId,
642
+ createdAt: Sequelize.literal('now()'),
643
+ updatedAt: Sequelize.literal('now()'),
644
+ },
645
+ ],
646
+ {}
647
+ )
648
+
649
+ await queryInterface.bulkInsert(
650
+ 'ResponsesBoxes',
651
+ [
652
+ {
653
+ ResponseId: responseId1,
654
+ ChannelTypeId: ChannelTypeId,
655
+ type: 'flow',
656
+ payload: JSON.stringify([
657
+ {
658
+ id: '',
659
+ type: 'text',
660
+ messages: [
661
+ {
662
+ message: `response default <:$node:>`,
663
+ },
664
+ ],
665
+ },
666
+ ]),
667
+ createdAt: Sequelize.literal('now()'),
668
+ updatedAt: Sequelize.literal('now()'),
669
+ },
670
+ ],
671
+ {}
672
+ )
673
+
674
+ const Response_DialogNodes = []
675
+ for (const DialogNodeId of jumps) {
676
+ Response_DialogNodes.push({
677
+ DialogNodeId,
678
+ ResponseId: responseId1,
679
+ createdAt: Sequelize.literal('now()'),
680
+ updatedAt: Sequelize.literal('now()'),
681
+ })
682
+ }
683
+
684
+ await queryInterface.bulkInsert(
685
+ 'Response_DialogNodes',
686
+ Response_DialogNodes
687
+ )
688
+
689
+ const DialogNodes_MultipleResponsesLevel1 = []
690
+ for (const ResponseId of multipleResponsesLevel1NodesIds) {
691
+ DialogNodes_MultipleResponsesLevel1.push({
692
+ ResponseId,
693
+ DialogNodeId: dialogNodeInitId,
694
+ createdAt: Sequelize.literal('now()'),
695
+ updatedAt: Sequelize.literal('now()'),
696
+ })
697
+ }
698
+
699
+ const DialogNodes_MultipleResponsesJumpLevel1 = []
700
+ for (const ResponseId of multipleResponsesJumpLevel1Ids) {
701
+ DialogNodes_MultipleResponsesJumpLevel1.push({
702
+ ResponseId,
703
+ DialogNodeId: dialogNodeJumpLevel1Id,
704
+ createdAt: Sequelize.literal('now()'),
705
+ updatedAt: Sequelize.literal('now()'),
706
+ })
707
+ }
708
+
709
+ const DialogNodes_MultipleResponsesJumpLevel2 = []
710
+ for (const ResponseId of multipleResponsesJumpLevel2Ids) {
711
+ DialogNodes_MultipleResponsesJumpLevel2.push({
712
+ ResponseId,
713
+ DialogNodeId: dialogNodeJumpLevel2Id,
714
+ createdAt: Sequelize.literal('now()'),
715
+ updatedAt: Sequelize.literal('now()'),
716
+ })
717
+ }
718
+
719
+ const DialogNodes_MultipleResponsesJumpLevel3 = []
720
+ for (const ResponseId of multipleResponsesJumpLevel3Ids) {
721
+ DialogNodes_MultipleResponsesJumpLevel3.push({
722
+ ResponseId,
723
+ DialogNodeId: dialogNodeJumpLevel3Id,
724
+ createdAt: Sequelize.literal('now()'),
725
+ updatedAt: Sequelize.literal('now()'),
726
+ })
727
+ }
728
+
729
+ const DialogNodes_MultipleResponsesJumpLevel4 = []
730
+ for (const ResponseId of multipleResponsesJumpLevel4Ids) {
731
+ DialogNodes_MultipleResponsesJumpLevel4.push({
732
+ ResponseId,
733
+ DialogNodeId: dialogNodeJumpLevel4Id,
734
+ createdAt: Sequelize.literal('now()'),
735
+ updatedAt: Sequelize.literal('now()'),
736
+ })
737
+ }
738
+
739
+ await queryInterface.bulkInsert('DialogNodes_MultipleResponses', [
740
+ ...DialogNodes_MultipleResponsesLevel1,
741
+ ...DialogNodes_MultipleResponsesJumpLevel1,
742
+ ...DialogNodes_MultipleResponsesJumpLevel2,
743
+ ...DialogNodes_MultipleResponsesJumpLevel3,
744
+ ...DialogNodes_MultipleResponsesJumpLevel4,
745
+ ])
746
+ },
747
+
748
+ down: async (queryInterface) => {
749
+ await queryInterface.bulkDelete('Response_DialogNodes', [
750
+ { ResponseId: responseId1 },
751
+ ])
752
+ await queryInterface.bulkDelete('ResponsesBoxes', [
753
+ { ResponseId: responseId1 },
754
+ ])
755
+
756
+ await queryInterface.bulkDelete('DialogNodes_MultipleResponses', [
757
+ { ResponseId: { [Op.in]: responsesDialogNodesIds } },
758
+ ])
759
+
760
+ await queryInterface.bulkDelete('Responses', [{ id: responseId1 }])
761
+ await queryInterface.bulkDelete('DialogNodes', [{ SkillId }])
762
+ await queryInterface.bulkDelete('Skills', [{ id: SkillId }])
763
+ },
764
+ }