@itleanchatbot/shared-models-js-postgres 1.5.91 → 2.1.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.
Files changed (192) hide show
  1. package/README.md +28 -3
  2. package/package.json +8 -2
  3. package/src/migrations/2021050204551-create-extension-uuid-ossp.js +12 -0
  4. package/src/migrations/20210503140511-create-channel-types.js +56 -0
  5. package/src/migrations/20210503141113-create-channel-configurations.js +56 -0
  6. package/src/migrations/20210503141528-create-enterprises.js +47 -0
  7. package/src/migrations/20210503142049-create-permissions.js.js +44 -0
  8. package/src/migrations/20210503142205-create-profiles.js.js +33 -0
  9. package/src/migrations/20210503142259-create-profiles-permissions.js +45 -0
  10. package/src/migrations/20210503142433-create-system-users.js +61 -0
  11. package/src/migrations/20210503142528-create-system-users-profiles.js +45 -0
  12. package/src/migrations/20210503142645-create-departments.js +49 -0
  13. package/src/migrations/20210503142739-create-clients.js +44 -0
  14. package/src/migrations/20210503142857-create-intelligences.js +48 -0
  15. package/src/migrations/20210503142959-create-ibm-providers.js +71 -0
  16. package/src/migrations/20210503151909-create-itlean-providers.js +53 -0
  17. package/src/migrations/20210503154612-create-skills.js +114 -0
  18. package/src/migrations/20210503161006-create-files.js +53 -0
  19. package/src/migrations/20210503161236-create-channels.js +66 -0
  20. package/src/migrations/20210503161308-create-sessions.js +67 -0
  21. package/src/migrations/20210503161503-create-subdepartments.js +49 -0
  22. package/src/migrations/20210503161543-create-branches.js +53 -0
  23. package/src/migrations/20210503161909-create-lines.js +55 -0
  24. package/src/migrations/20210503161947-create-entities.js +56 -0
  25. package/src/migrations/20210503162126-create-intentions.js +56 -0
  26. package/src/migrations/20210503162213-create-intentions-values.js +51 -0
  27. package/src/migrations/20210503162618-create-entities-values.js +67 -0
  28. package/src/migrations/20210503162752-create-synonyms.js +71 -0
  29. package/src/migrations/20210503163331-create-responses.js +58 -0
  30. package/src/migrations/20210503163437-create-responses-boxes.js +66 -0
  31. package/src/migrations/20210503163702-create-languages.js +42 -0
  32. package/src/migrations/20210503184109-create-groups.js +53 -0
  33. package/src/migrations/20210503185846-create-contacts.js +55 -0
  34. package/src/migrations/20210503190220-create-groups-contacts.js +47 -0
  35. package/src/migrations/20210503190338-create-fields.js +40 -0
  36. package/src/migrations/20210503190515-create-apis.js +65 -0
  37. package/src/migrations/20210503191041-create-apis-resources-body.js +46 -0
  38. package/src/migrations/20210503191107-create-apis-resources.js +74 -0
  39. package/src/migrations/20210503191253-create-apis-resources-headers.js +53 -0
  40. package/src/migrations/20210503193228-create-apis-resources-query-string-params.js +61 -0
  41. package/src/migrations/20210503193425-create-apis-resources-path-params.js +52 -0
  42. package/src/migrations/20210503193511-create-dialog-nodes.js +121 -0
  43. package/src/migrations/20210503193629-create-response-dialog-nodes.js +46 -0
  44. package/src/migrations/20210503193905-create-system-users-lines.js +45 -0
  45. package/src/migrations/20210503194004-create-attendances.js +80 -0
  46. package/src/migrations/20210503194036-create-tranship-conversations.js +65 -0
  47. package/src/migrations/20210503194204-create-line-configurations.js +75 -0
  48. package/src/migrations/20210504133611-create-templates.js +68 -0
  49. package/src/migrations/20210504133647-create-socket-clients.js +73 -0
  50. package/src/migrations/20210504143703-create-dialog-nodes-multiple-responses.js +47 -0
  51. package/src/migrations/20210504144332-create-messages-hsm.js +72 -0
  52. package/src/migrations/20210504144657-create-dialog-nodes-api-resources.js +54 -0
  53. package/src/migrations/20210504144730-create-send-hsm.js +62 -0
  54. package/src/migrations/20210504144859-create-messages-hsm-channels.js +48 -0
  55. package/src/migrations/20210504144931-create-open-faqs.js +55 -0
  56. package/src/migrations/20210504145032-create-return-hsm.js +50 -0
  57. package/src/migrations/20210504160623-create-group-send-hsm.js +52 -0
  58. package/src/migrations/20210504164445-create-extension-unaccent.js +11 -0
  59. package/src/migrations/20210504164516-create-extension-fuzzy.js +11 -0
  60. package/src/migrations/20210504164553-create-attendance-scale.js +48 -0
  61. package/src/migrations/20210504164613-create-attendance-scale-off.js +58 -0
  62. package/src/migrations/20210504165351-create-comments.js +42 -0
  63. package/src/migrations/20210504165421-create-quick-messages.js +49 -0
  64. package/src/migrations/20210504165514-create-bot-iterables.js +60 -0
  65. package/src/migrations/20210504165900-create-tranship-triggers.js +114 -0
  66. package/src/migrations/20210505025504-create-send-hsm-return-hsm.js +34 -0
  67. package/src/migrations/20210507012938-create-faq-triggers.js +68 -0
  68. package/src/migrations/20210518122431-alter-responses.js +17 -0
  69. package/src/migrations/20210524150418-create-faq-questions.js +51 -0
  70. package/src/migrations/20210524173157-alter-table-open-faq.js +17 -0
  71. package/src/migrations/20210526115430-alter-attendances.js +14 -0
  72. package/src/migrations/20210528101030-alter-attendances.js +82 -0
  73. package/src/migrations/20210609103918-create-table-postbakGupshup.js +46 -0
  74. package/src/migrations/20210614194609-alter-channels.js +14 -0
  75. package/src/migrations/20210618101840-alter-table-MessagesHsms.js +14 -0
  76. package/src/migrations/20210622132643-alter-table-postbackGupshup.js +11 -0
  77. package/src/migrations/20210623110159-alter-table-botinterable.js +176 -0
  78. package/src/migrations/20210623180356-alter-dialog-nodes-api-resources.js +15 -0
  79. package/src/migrations/20210625165930-alter-dialog-nodes-api-resources.js +15 -0
  80. package/src/migrations/20210708142712-alter-table-entity-values.js +17 -0
  81. package/src/migrations/20210708145259-alter-table-synonyms.js +25 -0
  82. package/src/migrations/20210719161230-alter-attendances.js +14 -0
  83. package/src/migrations/20210727095921-alter-name-size.js +39 -0
  84. package/src/migrations/20210727110430-create-endSessionTriggers.js +71 -0
  85. package/src/migrations/20210728140327-create-table-online-editing.js +42 -0
  86. package/src/migrations/20210810152747-alter-botIterables.js +26 -0
  87. package/src/migrations/20210812110330-create-indexes.js +101 -0
  88. package/src/migrations/20210816124430-create-inactivityTriggers.js +60 -0
  89. package/src/migrations/20210819155330-create-function.js +123 -0
  90. package/src/migrations/20210823145424-remove-names-botiterables.js +74 -0
  91. package/src/migrations/20210902145430-create-apiKeys.js +40 -0
  92. package/src/migrations/20210906092430-create-customPostback.js +44 -0
  93. package/src/migrations/20210906144034-alter-api-body-migration.js +74 -0
  94. package/src/migrations/20210910081430-create-transhipInactivityTriggers.js +48 -0
  95. package/src/migrations/20210923131530-alter-attendances.js +14 -0
  96. package/src/migrations/20210923140130-create-function.js +85 -0
  97. package/src/migrations/20210927141630-alter-attendances.js +32 -0
  98. package/src/migrations/20211020130541-alter-table-session-hasTranship.js +14 -0
  99. package/src/migrations/20211025155825-create-stopwords.js +52 -0
  100. package/src/{apiKeys.js → models/apiKeys.js} +1 -1
  101. package/src/{apiResourceBodies.js → models/apiResourceBodies.js} +1 -1
  102. package/src/{apiResourceHeaders.js → models/apiResourceHeaders.js} +1 -1
  103. package/src/{apiResourcePathParams.js → models/apiResourcePathParams.js} +1 -1
  104. package/src/{apiResourceQueryStringParams.js → models/apiResourceQueryStringParams.js} +1 -1
  105. package/src/{apiResources.js → models/apiResources.js} +1 -1
  106. package/src/{apis.js → models/apis.js} +1 -1
  107. package/src/{attendanceScale.js → models/attendanceScale.js} +1 -1
  108. package/src/{attendanceScaleOff.js → models/attendanceScaleOff.js} +1 -1
  109. package/src/{attendances.js → models/attendances.js} +1 -1
  110. package/src/{botIterable.js → models/botIterable.js} +1 -5
  111. package/src/{branches.js → models/branches.js} +1 -1
  112. package/src/{channelConfigurations.js → models/channelConfigurations.js} +1 -1
  113. package/src/{channelTypes.js → models/channelTypes.js} +15 -1
  114. package/src/{channels.js → models/channels.js} +1 -1
  115. package/src/{client.js → models/client.js} +1 -1
  116. package/src/{comments.js → models/comments.js} +1 -1
  117. package/src/models/contacts.js +41 -0
  118. package/src/{customPostbacks.js → models/customPostbacks.js} +1 -1
  119. package/src/{departments.js → models/departments.js} +1 -1
  120. package/src/{dialogNodes.js → models/dialogNodes.js} +1 -1
  121. package/src/{dialogNodes_MultipleResponses.js → models/dialogNodes_MultipleResponses.js} +1 -1
  122. package/src/{dialogNodes_apiResources.js → models/dialogNodes_apiResources.js} +1 -1
  123. package/src/{endSessionTriggers.js → models/endSessionTriggers.js} +1 -1
  124. package/src/{enterprises.js → models/enterprises.js} +1 -1
  125. package/src/{entity.js → models/entity.js} +1 -1
  126. package/src/{entityValues.js → models/entityValues.js} +1 -1
  127. package/src/{faqQuestions.js → models/faqQuestions.js} +1 -1
  128. package/src/{faqTriggers.js → models/faqTriggers.js} +1 -1
  129. package/src/models/fields.js +28 -0
  130. package/src/{files.js → models/files.js} +1 -1
  131. package/src/models/groups.js +45 -0
  132. package/src/models/groupsContracts.js +13 -0
  133. package/src/models/groupsSendHsms.js +13 -0
  134. package/src/{ibmProvider.js → models/ibmProvider.js} +1 -1
  135. package/src/{inactivityTriggers.js → models/inactivityTriggers.js} +1 -1
  136. package/src/models/index.js +45 -0
  137. package/src/{intelligence.js → models/intelligence.js} +1 -1
  138. package/src/{intention.js → models/intention.js} +1 -1
  139. package/src/{intentionValue.js → models/intentionValue.js} +1 -1
  140. package/src/{itleanProvider.js → models/itleanProvider.js} +1 -1
  141. package/src/models/language.js +21 -0
  142. package/src/{lineConfigurations.js → models/lineConfigurations.js} +1 -1
  143. package/src/{lines.js → models/lines.js} +1 -1
  144. package/src/{messagesHsm.js → models/messagesHsm.js} +6 -2
  145. package/src/models/onlineEditions.js +27 -0
  146. package/src/{openFaqs.js → models/openFaqs.js} +1 -1
  147. package/src/{permissions.js → models/permissions.js} +1 -1
  148. package/src/{postbackGupshup.js → models/postbackGupshup.js} +1 -1
  149. package/src/{profile.js → models/profile.js} +1 -1
  150. package/src/{profiles_permission.js → models/profiles_permission.js} +1 -1
  151. package/src/{quickMessages.js → models/quickMessages.js} +1 -1
  152. package/src/models/responseChannels.js +39 -0
  153. package/src/{response_DialogNodes.js → models/response_DialogNodes.js} +1 -1
  154. package/src/{responses.js → models/responses.js} +1 -1
  155. package/src/{responsesBoxes.js → models/responsesBoxes.js} +1 -1
  156. package/src/{returnHsm.js → models/returnHsm.js} +1 -1
  157. package/src/models/sendHsm.js +51 -0
  158. package/src/models/sendHsmReturnHsm.js +13 -0
  159. package/src/{sessions.js → models/sessions.js} +1 -1
  160. package/src/{skill.js → models/skill.js} +1 -1
  161. package/src/{socketClients.js → models/socketClients.js} +1 -1
  162. package/src/{stopwords.js → models/stopwords.js} +1 -1
  163. package/src/{subDepartments.js → models/subDepartments.js} +1 -1
  164. package/src/{synonyms.js → models/synonyms.js} +1 -1
  165. package/src/{systemUsers.js → models/systemUsers.js} +1 -1
  166. package/src/{systemUsers_Lines.js → models/systemUsers_Lines.js} +1 -1
  167. package/src/{systemUsers_profiles.js → models/systemUsers_profiles.js} +1 -1
  168. package/src/{templates.js → models/templates.js} +1 -1
  169. package/src/{transhipConversations.js → models/transhipConversations.js} +1 -1
  170. package/src/{transhipInactivityTriggers.js → models/transhipInactivityTriggers.js} +1 -1
  171. package/src/{transhipTriggers.js → models/transhipTriggers.js} +1 -1
  172. package/src/presenters/database/migrationHelpers.js +62 -0
  173. package/src/presenters/encryptation.js +14 -0
  174. package/src/seeders/20210414180447-change-ChannelTypes.js +47 -0
  175. package/src/seeders/20210505130137-insert-channel-types.js +65 -0
  176. package/src/seeders/20210505132612-insert-intelligence.js +27 -0
  177. package/src/seeders/20210505134121-insert-enterprise.js +15 -0
  178. package/src/seeders/20210505134345-insert-permissions.js +125 -0
  179. package/src/seeders/20210505134549-insert-profiles.js +39 -0
  180. package/src/seeders/20210505134700-insert-profiles-permissions.js +80 -0
  181. package/src/seeders/20210505135931-insert-system-users.js +52 -0
  182. package/src/seeders/20210505140025-insert-system-users-profiles.js +26 -0
  183. package/src/seeders/20210505140049-insert-language.js +21 -0
  184. package/src/seeders/20210505140259-insert-itlean-provider.js +34 -0
  185. package/src/seeders/20210505140343-insert-templates.js +228 -0
  186. package/src/seeders/20210505140658-insert-channel-configurations.js +146 -0
  187. package/src/seeders/20210618132740-add-new-channel-configutations.js +45 -0
  188. package/src/seeders/20210817081230-insert-profiles-permissions.js +105 -0
  189. package/src/seeders/20210830131930-insert-profiles-permissions.js +71 -0
  190. package/src/seeders/20210902160430-insert-apiKey.js +30 -0
  191. package/src/seeders/20211005135921-edit-gupshup-reponseTypes.js +47 -0
  192. package/index.js +0 -125
@@ -0,0 +1,52 @@
1
+ const { encrypt } = require('./../presenters/encryptation')
2
+ const { v4: generateId } = require('uuid')
3
+ const { PROVIDER_TYPES } = require('./../models/intelligence')
4
+
5
+ module.exports = {
6
+ up: async (queryInterface) => {
7
+ const EnterpriseId = await queryInterface.rawSelect(
8
+ 'Enterprises',
9
+ { where: { cnpj: process.env.ENTERPRISE_CNPJ } },
10
+ ['id']
11
+ )
12
+ const IntelligenceId = await queryInterface.rawSelect(
13
+ 'Intelligences',
14
+ { where: { providerType: PROVIDER_TYPES.ITLEAN } },
15
+ ['id']
16
+ )
17
+
18
+ const userId = generateId()
19
+
20
+ await queryInterface.bulkInsert('SystemUsers', [
21
+ {
22
+ id: userId,
23
+ name: process.env.SUPER_USER_NAME,
24
+ email: process.env.SUPER_USER_EMAIL,
25
+ password: encrypt(process.env.SUPER_USER_PASSWORD),
26
+ EnterpriseId,
27
+ createdAt: new Date(),
28
+ updatedAt: new Date(),
29
+ },
30
+ ])
31
+
32
+ await queryInterface.bulkInsert('ItleanProviders', [
33
+ {
34
+ EnterpriseId,
35
+ IntelligenceId,
36
+ createdAt: new Date(),
37
+ updatedAt: new Date(),
38
+ },
39
+ ])
40
+ },
41
+ down: async (queryInterface) => {
42
+ const { EnterpriseId, id } = await queryInterface.rawSelect(
43
+ 'SystemUsers',
44
+ { where: { email: process.env.SUPER_USER_EMAIL } },
45
+ ['EnterpriseId', 'id']
46
+ )
47
+
48
+ await queryInterface.bulkDelete('ItleanProviders', { EnterpriseId }, {})
49
+
50
+ return queryInterface.bulkDelete('SystemUsers', { id }, {})
51
+ },
52
+ }
@@ -0,0 +1,26 @@
1
+ module.exports = {
2
+ up: async (queryInterface, Sequelize) => {
3
+ const UserId = await queryInterface.rawSelect(
4
+ 'SystemUsers',
5
+ { where: { email: process.env.SUPER_USER_EMAIL } },
6
+ ['id']
7
+ )
8
+ const profileId = await queryInterface.rawSelect(
9
+ 'Profiles',
10
+ { where: { name: 'Master' } },
11
+ ['id']
12
+ )
13
+
14
+ return queryInterface.bulkInsert('SystemUsers_Profiles', [
15
+ {
16
+ SystemUserId: UserId,
17
+ ProfileId: profileId,
18
+ createdAt: new Date(),
19
+ updatedAt: new Date(),
20
+ },
21
+ ])
22
+ },
23
+ down: async (queryInterface, Sequelize) => {
24
+ return queryInterface.bulkDelete('SystemUsers_Profiles', null, {})
25
+ },
26
+ }
@@ -0,0 +1,21 @@
1
+ module.exports = {
2
+ up: async (queryInterface, Sequelize) => {
3
+ return queryInterface.bulkInsert('Languages', [
4
+ {
5
+ label: 'Português - Brasileiro',
6
+ value: 'pt-br',
7
+ createdAt: new Date(),
8
+ updatedAt: new Date(),
9
+ },
10
+ {
11
+ label: 'Inglês',
12
+ value: 'en-us',
13
+ createdAt: new Date(),
14
+ updatedAt: new Date(),
15
+ },
16
+ ])
17
+ },
18
+ down: async (queryInterface, Sequelize) => {
19
+ return queryInterface.bulkDelete('Languages', null, {})
20
+ },
21
+ }
@@ -0,0 +1,34 @@
1
+ 'use strict'
2
+ const { PROVIDER_TYPES } = require('./../models/intelligence')
3
+
4
+ module.exports = {
5
+ up: async (queryInterface) => {
6
+ const EnterpriseId = await queryInterface.rawSelect(
7
+ 'Enterprises',
8
+ { where: { cnpj: process.env.ENTERPRISE_CNPJ } },
9
+ ['id']
10
+ )
11
+ const IntelligenceId = await queryInterface.rawSelect(
12
+ 'Intelligences',
13
+ { where: { providerType: PROVIDER_TYPES.ITLEAN } },
14
+ ['id']
15
+ )
16
+ await queryInterface.bulkInsert(
17
+ 'ItleanProviders',
18
+ [
19
+ {
20
+ IntelligenceId,
21
+ EnterpriseId,
22
+ active: true,
23
+ createdAt: new Date(),
24
+ updatedAt: new Date(),
25
+ },
26
+ ],
27
+ {}
28
+ )
29
+ },
30
+
31
+ down: async (queryInterface) => {
32
+ await queryInterface.bulkDelete('ItleanProviders', null, {})
33
+ },
34
+ }
@@ -0,0 +1,228 @@
1
+ module.exports = {
2
+ up: async (queryInterface) => {
3
+ const EnterpriseId = await queryInterface.rawSelect(
4
+ 'Enterprises',
5
+ { where: {} },
6
+ ['id']
7
+ )
8
+
9
+ const ChannelTypeIdInteraxa = await queryInterface.rawSelect(
10
+ 'ChannelTypes',
11
+ { where: { channelName: 'whatsapp_interaxa' } },
12
+ ['id']
13
+ )
14
+
15
+ const ChannelTypeIdGupshup = await queryInterface.rawSelect(
16
+ 'ChannelTypes',
17
+ { where: { channelName: 'whatsapp_gupshup' } },
18
+ ['id']
19
+ )
20
+
21
+ await queryInterface.bulkInsert('Templates', [
22
+ {
23
+ title: 'Mensagem simples',
24
+ channelId: 'whatsapp',
25
+ description: 'Body',
26
+ contractType: 'hsmBody',
27
+ EnterpriseId,
28
+ ChannelTypeId: ChannelTypeIdInteraxa,
29
+ elements: JSON.stringify(['body']),
30
+ contractJson: JSON.stringify({
31
+ hsm: {
32
+ language: {
33
+ code: 'pt_BR',
34
+ policy: 'deterministic',
35
+ },
36
+ element_name: 'itlean',
37
+ },
38
+ type: 'hsm',
39
+ recipient_type: 'individual',
40
+ }),
41
+ createdAt: new Date(),
42
+ updatedAt: new Date(),
43
+ },
44
+ {
45
+ title: 'Arquivo, mensagem e rodapé',
46
+ channelId: 'whatsapp',
47
+ EnterpriseId,
48
+ ChannelTypeId: ChannelTypeIdInteraxa,
49
+ description: 'Imagem, body e texto no footer',
50
+ contractType: 'hsmImageBodyImage',
51
+ elements: JSON.stringify(['header', 'body', 'footer']),
52
+ contractJson: JSON.stringify({
53
+ type: 'template',
54
+ template: {
55
+ name: 'itlean_footer',
56
+ language: {
57
+ code: 'pt_BR',
58
+ policy: 'deterministic',
59
+ },
60
+ },
61
+ recipient_type: 'individual',
62
+ }),
63
+ createdAt: new Date(),
64
+ updatedAt: new Date(),
65
+ },
66
+ {
67
+ title: 'Arquivo, mensagem e botões',
68
+ channelId: 'whatsapp',
69
+ EnterpriseId,
70
+ ChannelTypeId: ChannelTypeIdInteraxa,
71
+ description: 'Imagem, body, buttons, texto no footer',
72
+ contractType: 'hsmHeaderImageBodyThreeButtons',
73
+ elements: JSON.stringify([
74
+ 'header',
75
+ 'body',
76
+ 'buttonAnswer',
77
+ 'buttonAnswer',
78
+ 'buttonAnswer',
79
+ ]),
80
+ contractJson: JSON.stringify({
81
+ type: 'template',
82
+ template: {
83
+ name: 'itlean_3botoes',
84
+ language: {
85
+ code: 'pt_BR',
86
+ policy: 'deterministic',
87
+ },
88
+ },
89
+ recipient_type: 'individual',
90
+ }),
91
+ createdAt: new Date(),
92
+ updatedAt: new Date(),
93
+ },
94
+ {
95
+ title: 'Arquivo, mensagem e link',
96
+ channelId: 'whatsapp',
97
+ EnterpriseId,
98
+ ChannelTypeId: ChannelTypeIdInteraxa,
99
+ description: 'Imagem, body, button',
100
+ contractType: 'hsmHeaderImageBodyOneButton',
101
+ elements: JSON.stringify([
102
+ 'header',
103
+ 'body',
104
+ 'buttonHyperLink',
105
+ 'buttonPhone',
106
+ ]),
107
+ contractJson: JSON.stringify({
108
+ type: 'template',
109
+ template: {
110
+ name: 'itlean1_botao',
111
+ language: {
112
+ code: 'pt_BR',
113
+ policy: 'deterministic',
114
+ },
115
+ recipient_type: 'individual',
116
+ },
117
+ }),
118
+ createdAt: new Date(),
119
+ updatedAt: new Date(),
120
+ },
121
+ ])
122
+
123
+ return queryInterface.bulkInsert('Templates', [
124
+ {
125
+ title: 'Mensagem simples',
126
+ channelId: 'whatsapp',
127
+ description: 'Body',
128
+ contractType: 'hsmBody',
129
+ EnterpriseId,
130
+ ChannelTypeId: ChannelTypeIdGupshup,
131
+ elements: JSON.stringify(['body']),
132
+ contractJson: JSON.stringify({
133
+ hsm: {
134
+ language: {
135
+ code: 'pt_BR',
136
+ policy: 'deterministic',
137
+ },
138
+ element_name: 'itlean',
139
+ },
140
+ type: 'hsm',
141
+ recipient_type: 'individual',
142
+ }),
143
+ createdAt: new Date(),
144
+ updatedAt: new Date(),
145
+ },
146
+ {
147
+ title: 'Arquivo, mensagem e rodapé',
148
+ channelId: 'whatsapp',
149
+ EnterpriseId,
150
+ ChannelTypeId: ChannelTypeIdGupshup,
151
+ description: 'Imagem, body e texto no footer',
152
+ contractType: 'hsmImageBodyImage',
153
+ elements: JSON.stringify(['header', 'body', 'footer']),
154
+ contractJson: JSON.stringify({
155
+ type: 'template',
156
+ template: {
157
+ name: 'itlean_footer',
158
+ language: {
159
+ code: 'pt_BR',
160
+ policy: 'deterministic',
161
+ },
162
+ },
163
+ recipient_type: 'individual',
164
+ }),
165
+ createdAt: new Date(),
166
+ updatedAt: new Date(),
167
+ },
168
+ {
169
+ title: 'Arquivo, mensagem e botões',
170
+ channelId: 'whatsapp',
171
+ EnterpriseId,
172
+ ChannelTypeId: ChannelTypeIdGupshup,
173
+ description: 'Imagem, body, buttons, texto no footer',
174
+ contractType: 'hsmHeaderImageBodyThreeButtons',
175
+ elements: JSON.stringify([
176
+ 'header',
177
+ 'body',
178
+ 'buttonAnswer',
179
+ 'buttonAnswer',
180
+ 'buttonAnswer',
181
+ ]),
182
+ contractJson: JSON.stringify({
183
+ type: 'template',
184
+ template: {
185
+ name: 'itlean_3botoes',
186
+ language: {
187
+ code: 'pt_BR',
188
+ policy: 'deterministic',
189
+ },
190
+ },
191
+ recipient_type: 'individual',
192
+ }),
193
+ createdAt: new Date(),
194
+ updatedAt: new Date(),
195
+ },
196
+ {
197
+ title: 'Arquivo, mensagem e link',
198
+ channelId: 'whatsapp',
199
+ EnterpriseId,
200
+ ChannelTypeId: ChannelTypeIdGupshup,
201
+ description: 'Imagem, body, button',
202
+ contractType: 'hsmHeaderImageBodyOneButton',
203
+ elements: JSON.stringify([
204
+ 'header',
205
+ 'body',
206
+ 'buttonHyperLink',
207
+ 'buttonPhone',
208
+ ]),
209
+ contractJson: JSON.stringify({
210
+ type: 'template',
211
+ template: {
212
+ name: 'itlean1_botao',
213
+ language: {
214
+ code: 'pt_BR',
215
+ policy: 'deterministic',
216
+ },
217
+ recipient_type: 'individual',
218
+ },
219
+ }),
220
+ createdAt: new Date(),
221
+ updatedAt: new Date(),
222
+ },
223
+ ])
224
+ },
225
+ down: async (queryInterface) => {
226
+ return queryInterface.bulkDelete('Templates', null, {})
227
+ },
228
+ }
@@ -0,0 +1,146 @@
1
+ const models = require('../models')
2
+
3
+ const configurations = {
4
+ webchat: [
5
+ {
6
+ fieldName: 'domainName',
7
+ fieldType: 'string',
8
+ fieldLabel: 'Nome de Domínio',
9
+ },
10
+ {
11
+ fieldName: 'displayName',
12
+ fieldType: 'string',
13
+ fieldLabel: 'Nome de Exibição',
14
+ },
15
+ {
16
+ fieldName: 'sendAttachments',
17
+ fieldType: 'boolean',
18
+ fieldLabel: 'Permite envio de anexos',
19
+ },
20
+ {
21
+ fieldName: 'componentsColor',
22
+ fieldType: 'string',
23
+ fieldLabel: 'Cor dos Componentes',
24
+ },
25
+ {
26
+ fieldName: 'backgroundColor',
27
+ fieldType: 'string',
28
+ fieldLabel: 'Cor de fundo',
29
+ },
30
+ {
31
+ fieldName: 'fontColor',
32
+ fieldType: 'string',
33
+ fieldLabel: 'Cor da fonte',
34
+ },
35
+ ],
36
+ whatsapp_interaxa: [
37
+ {
38
+ fieldName: 'phoneNumber',
39
+ fieldType: 'string',
40
+ fieldLabel: 'Número do WhatsApp',
41
+ },
42
+ {
43
+ fieldName: 'mediaId',
44
+ fieldType: 'string',
45
+ fieldLabel: 'ID da Conta do WhatsApp',
46
+ },
47
+ {
48
+ fieldName: 'namespace',
49
+ fieldType: 'string',
50
+ fieldLabel: 'ID broken da Conta do WhatsApp',
51
+ },
52
+ {
53
+ fieldName: 'urlApi',
54
+ fieldType: 'string',
55
+ fieldLabel: 'URL da API de serviços do WhatsApp',
56
+ },
57
+ {
58
+ fieldName: 'apiUser',
59
+ fieldType: 'string',
60
+ fieldLabel: 'Usuário para Autenticação',
61
+ },
62
+ {
63
+ fieldName: 'apiPassword',
64
+ fieldType: 'string',
65
+ fieldLabel: 'Senha para Autenticação',
66
+ },
67
+ ],
68
+ whatsapp_gupshup: [
69
+ {
70
+ fieldName: 'source',
71
+ fieldType: 'string',
72
+ fieldLabel: 'Número do WhatsApp',
73
+ },
74
+ {
75
+ fieldName: 'wabaid',
76
+ fieldType: 'string',
77
+ fieldLabel: 'WABA ID',
78
+ },
79
+ {
80
+ fieldName: 'src.name',
81
+ fieldType: 'string',
82
+ fieldLabel: 'Nome do APP',
83
+ },
84
+ {
85
+ fieldName: 'apikey',
86
+ fieldType: 'string',
87
+ fieldLabel: 'API Key',
88
+ },
89
+ {
90
+ fieldName: 'urlApi',
91
+ fieldType: 'string',
92
+ fieldLabel: 'URL da API de serviços do Gupshup',
93
+ },
94
+ ],
95
+ facebook: [
96
+ {
97
+ fieldName: 'urlApi',
98
+ fieldType: 'string',
99
+ fieldLabel: 'URL da API de serviços do WhatsApp',
100
+ },
101
+ {
102
+ fieldName: 'accessToken',
103
+ fieldType: 'string',
104
+ fieldLabel: 'Token de acesso a api',
105
+ },
106
+ {
107
+ fieldName: 'serverId',
108
+ fieldType: 'string',
109
+ fieldLabel: 'Id do chat do facebook',
110
+ },
111
+ ],
112
+ }
113
+
114
+ module.exports = {
115
+ up: async (queryInterface, Sequelize) => {
116
+ const channelTypes = await queryInterface.select(
117
+ models.ChannelTypes,
118
+ 'ChannelTypes'
119
+ )
120
+
121
+ let channelConfigurations = []
122
+
123
+ channelTypes.forEach((type) => {
124
+ if (configurations[type.channelName]) {
125
+ const parseDataTimeStamp = configurations[type.channelName].map(
126
+ (channel) => {
127
+ channel.ChannelTypeId = type.id
128
+ channel.createdAt = new Date()
129
+ channel.updatedAt = new Date()
130
+ return channel
131
+ }
132
+ )
133
+
134
+ channelConfigurations = channelConfigurations.concat(parseDataTimeStamp)
135
+ }
136
+ })
137
+
138
+ await queryInterface.bulkInsert(
139
+ 'ChannelConfigurations',
140
+ channelConfigurations
141
+ )
142
+ },
143
+ down: async (queryInterface, Sequelize) => {
144
+ return queryInterface.bulkDelete('ChannelConfigurations', null, {})
145
+ },
146
+ }
@@ -0,0 +1,45 @@
1
+ const models = require('../models')
2
+
3
+ const configurations = {
4
+ whatsapp_gupshup: [
5
+ {
6
+ fieldName: 'appId',
7
+ fieldType: 'string',
8
+ fieldLabel: 'APP ID',
9
+ },
10
+ ],
11
+ }
12
+
13
+ module.exports = {
14
+ up: async (queryInterface, Sequelize) => {
15
+ const channelTypes = await queryInterface.select(
16
+ models.ChannelTypes,
17
+ 'ChannelTypes'
18
+ )
19
+
20
+ let channelConfigurations = []
21
+
22
+ channelTypes.forEach((type) => {
23
+ if (configurations[type.channelName]) {
24
+ const parseDataTimeStamp = configurations[type.channelName].map(
25
+ (channel) => {
26
+ channel.ChannelTypeId = type.id
27
+ channel.createdAt = new Date()
28
+ channel.updatedAt = new Date()
29
+ return channel
30
+ }
31
+ )
32
+
33
+ channelConfigurations = channelConfigurations.concat(parseDataTimeStamp)
34
+ }
35
+ })
36
+
37
+ await queryInterface.bulkInsert(
38
+ 'ChannelConfigurations',
39
+ channelConfigurations
40
+ )
41
+ },
42
+ down: async (queryInterface, Sequelize) => {
43
+ return queryInterface.bulkDelete('ChannelConfigurations', null, {})
44
+ },
45
+ }
@@ -0,0 +1,105 @@
1
+ module.exports = {
2
+ up: async (queryInterface, Sequelize) => {
3
+ const [intention, entity, dialogNodes, apis] =
4
+ await queryInterface.bulkInsert(
5
+ 'Permissions',
6
+ [
7
+ {
8
+ permissionCode: 'crud_intention',
9
+ description:
10
+ 'Permite a criação, leitura, alteração e deleção de intenções',
11
+ createdAt: new Date(),
12
+ updatedAt: new Date(),
13
+ },
14
+ {
15
+ permissionCode: 'crud_entity',
16
+ description:
17
+ 'Permite a criação, leitura, alteração e deleção de entidades',
18
+ createdAt: new Date(),
19
+ updatedAt: new Date(),
20
+ },
21
+ {
22
+ permissionCode: 'crud_dialogNodes',
23
+ description:
24
+ 'Permite a criação, leitura, alteração e deleção de fluxo',
25
+ createdAt: new Date(),
26
+ updatedAt: new Date(),
27
+ },
28
+ {
29
+ permissionCode: 'crud_apis',
30
+ description:
31
+ 'Permite a criação, leitura, alteração e deleção de APIs',
32
+ createdAt: new Date(),
33
+ updatedAt: new Date(),
34
+ },
35
+ ],
36
+ { returning: ['id'] }
37
+ )
38
+
39
+ const adminId = await queryInterface.rawSelect(
40
+ 'Profiles',
41
+ { where: { name: 'Administrador' } },
42
+ ['id']
43
+ )
44
+
45
+ const operChatbotId = await queryInterface.rawSelect(
46
+ 'Profiles',
47
+ { where: { name: 'Operador Chatbot' } },
48
+ ['id']
49
+ )
50
+
51
+ return queryInterface.bulkInsert('Profiles_Permissions', [
52
+ {
53
+ ProfileId: adminId,
54
+ PermissionId: intention.id,
55
+ createdAt: new Date(),
56
+ updatedAt: new Date(),
57
+ },
58
+ {
59
+ ProfileId: adminId,
60
+ PermissionId: entity.id,
61
+ createdAt: new Date(),
62
+ updatedAt: new Date(),
63
+ },
64
+ {
65
+ ProfileId: adminId,
66
+ PermissionId: dialogNodes.id,
67
+ createdAt: new Date(),
68
+ updatedAt: new Date(),
69
+ },
70
+ {
71
+ ProfileId: adminId,
72
+ PermissionId: apis.id,
73
+ createdAt: new Date(),
74
+ updatedAt: new Date(),
75
+ },
76
+ {
77
+ ProfileId: operChatbotId,
78
+ PermissionId: intention.id,
79
+ createdAt: new Date(),
80
+ updatedAt: new Date(),
81
+ },
82
+ {
83
+ ProfileId: operChatbotId,
84
+ PermissionId: entity.id,
85
+ createdAt: new Date(),
86
+ updatedAt: new Date(),
87
+ },
88
+ {
89
+ ProfileId: operChatbotId,
90
+ PermissionId: dialogNodes.id,
91
+ createdAt: new Date(),
92
+ updatedAt: new Date(),
93
+ },
94
+ {
95
+ ProfileId: operChatbotId,
96
+ PermissionId: apis.id,
97
+ createdAt: new Date(),
98
+ updatedAt: new Date(),
99
+ },
100
+ ])
101
+ },
102
+ down: async (queryInterface, Sequelize) => {
103
+ await queryInterface.bulkDelete('Profiles_Permissions', null, {})
104
+ },
105
+ }