@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,51 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const SendHsms = sequelize.define('SendHsms', {
3
+ EnterpriseId: {
4
+ type: DataTypes.UUID,
5
+ allowNull: false,
6
+ references: {
7
+ model: 'Enterprises',
8
+ key: 'id',
9
+ },
10
+ onDelete: 'RESTRICT',
11
+ onUpdate: 'CASCADE',
12
+ },
13
+ messageId: {
14
+ allowNull: true,
15
+ type: DataTypes.STRING,
16
+ },
17
+ sentDate: {
18
+ allowNull: true,
19
+ type: DataTypes.STRING,
20
+ },
21
+ title: {
22
+ allowNull: true,
23
+ type: DataTypes.STRING,
24
+ },
25
+ statusSent: {
26
+ allowNull: true,
27
+ type: DataTypes.BOOLEAN,
28
+ defaultValue: false,
29
+ },
30
+ sendNow: {
31
+ allowNull: true,
32
+ type: DataTypes.BOOLEAN,
33
+ defaultValue: false,
34
+ },
35
+ schedulingDate: {
36
+ allowNull: true,
37
+ type: DataTypes.DATE,
38
+ },
39
+ })
40
+
41
+ SendHsms.associate = (models) => {
42
+ SendHsms.belongsTo(models.Enterprises)
43
+ SendHsms.belongsToMany(models.Groups, {
44
+ through: 'GroupsSendHsms',
45
+ as: 'Groups',
46
+ })
47
+ }
48
+
49
+ return SendHsms
50
+ }
51
+
@@ -0,0 +1,13 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const SendHsmReturHsm = sequelize.define('SendHsmReturHsms', {
3
+ SendHsmId: {
4
+ type: DataTypes.STRING,
5
+ },
6
+ messageId: {
7
+ type: DataTypes.STRING,
8
+ },
9
+ })
10
+
11
+ return SendHsmReturHsm
12
+ }
13
+
@@ -1,4 +1,4 @@
1
- exports.SessionsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Sessions = sequelize.define('Sessions', {
3
3
  ChannelId: {
4
4
  type: DataTypes.UUID,
@@ -105,7 +105,7 @@ const SkillModel = (sequelize, types) => {
105
105
  }
106
106
 
107
107
  module.exports = {
108
- SkillModel,
108
+ model: SkillModel,
109
109
  SKILL_LANG,
110
110
  STATUS,
111
111
  STATUS_TYPES,
@@ -1,4 +1,4 @@
1
- exports.SocketClientsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const SocketClients = sequelize.define('SocketClients', {
3
3
  SessionId: {
4
4
  type: DataTypes.UUID,
@@ -36,6 +36,6 @@
36
36
  }
37
37
 
38
38
  module.exports = {
39
- StopwordsModel
39
+ model: StopwordsModel
40
40
  }
41
41
 
@@ -1,4 +1,4 @@
1
- exports.SubDepartmentsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const SubDepartments = sequelize.define('SubDepartments', {
3
3
  EnterpriseId: {
4
4
  type: DataTypes.UUID,
@@ -61,7 +61,7 @@ const SynonymsModel = (sequelize, types) => {
61
61
  }
62
62
 
63
63
  module.exports = {
64
- SynonymsModel,
64
+ model: SynonymsModel,
65
65
  SYNONYMS_TYPE,
66
66
  SYNONYMS_TYPES,
67
67
  }
@@ -1,4 +1,4 @@
1
- exports.SystemUsersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const SystemUsers = sequelize.define('SystemUsers', {
3
3
  name: {
4
4
  allowNull: false,
@@ -1,4 +1,4 @@
1
- exports.SystemUsers_LinesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const SystemUsers_Lines = sequelize.define('SystemUsers_Lines', {
3
3
  SystemUserId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.SystemUsers_ProfilesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const SystemUsers_Profiles = sequelize.define('SystemUsers_Profiles', {
3
3
  SystemUserId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.TemplatesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Templates = sequelize.define('Templates', {
3
3
  EnterpriseId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.TranshipConversationsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const TranshipConversations = sequelize.define('TranshipConversations', {
3
3
  AttendanceId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.TranshipInactivityTriggersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const TranshipInactivityTriggers = sequelize.define(
3
3
  'TranshipInactivityTriggers',
4
4
  {
@@ -1,4 +1,4 @@
1
- exports.TranshipTriggersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const TranshipTriggers = sequelize.define('TranshipTriggers', {
3
3
  DialogNodeId: {
4
4
  type: DataTypes.UUID,
@@ -0,0 +1,62 @@
1
+ exports.replaceEnum = async (
2
+ queryInterface,
3
+ tableName,
4
+ fieldName,
5
+ ...enums
6
+ ) => {
7
+ const transaction = await queryInterface.sequelize.transaction()
8
+ const enumsStr = enums.map((e) => `'${e}'`).join(',')
9
+ const oldEnum = `enum_${tableName}_${fieldName}`
10
+ const newEnum = `${oldEnum}_new`
11
+ try {
12
+ await queryInterface.sequelize.query(
13
+ `
14
+ CREATE TYPE "${newEnum}"
15
+ AS ENUM (${enumsStr})
16
+ `,
17
+ { transaction }
18
+ )
19
+ await queryInterface.sequelize.query(
20
+ `
21
+ ALTER TABLE "${tableName}"
22
+ ALTER COLUMN "${fieldName}"
23
+ DROP DEFAULT
24
+ `,
25
+ { transaction }
26
+ )
27
+ await queryInterface.sequelize.query(
28
+ `
29
+ ALTER TABLE "${tableName}"
30
+ ALTER COLUMN "${fieldName}"
31
+ TYPE "${newEnum}"
32
+ USING ("${fieldName}"::text::"${newEnum}")
33
+ `,
34
+ { transaction }
35
+ )
36
+ await queryInterface.sequelize.query(
37
+ `
38
+ DROP TYPE "${oldEnum}"
39
+ `,
40
+ { transaction }
41
+ )
42
+ await queryInterface.sequelize.query(
43
+ `
44
+ ALTER TYPE "${newEnum}"
45
+ RENAME TO "${oldEnum}"
46
+ `,
47
+ { transaction }
48
+ )
49
+ await queryInterface.sequelize.query(
50
+ `
51
+ ALTER TABLE "${tableName}"
52
+ ALTER COLUMN "${fieldName}"
53
+ SET DEFAULT '${enums[0]}'::"${oldEnum}"
54
+ `,
55
+ { transaction }
56
+ )
57
+ await transaction.commit()
58
+ } catch (error) {
59
+ console.error(error)
60
+ transaction.rollback()
61
+ }
62
+ }
@@ -0,0 +1,14 @@
1
+ const CryptoJS = require('crypto-js')
2
+ const key = process.env.CRYPTO_KEY || ' '
3
+
4
+ exports.encrypt = (content) => {
5
+ const encryptedContent = CryptoJS.AES.encrypt(content, key)
6
+
7
+ return encryptedContent.toString()
8
+ }
9
+
10
+ exports.decrypt = (encryptedContent) => {
11
+ const bytes = CryptoJS.AES.decrypt(encryptedContent, key)
12
+
13
+ return bytes.toString(CryptoJS.enc.Utf8)
14
+ }
@@ -0,0 +1,47 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ try {
6
+ const WhatsAppChannelTypes = [
7
+ { action: 'text', display: 'Texto' },
8
+ { action: 'image', display: 'Imagem' },
9
+ { action: 'pdf', display: 'PDF' },
10
+ { action: 'video', display: 'Vídeo' },
11
+ { action: 'file', display: 'Arquivo' },
12
+ ]
13
+ const WebChatChannelTypes = [
14
+ { action: 'text', display: 'Texto' },
15
+ { action: 'image', display: 'Imagem' },
16
+ { action: 'simple_button', display: 'Botão simples' },
17
+ ]
18
+ const DefaultChannelTypes = [{ action: 'text', display: 'Texto' }]
19
+ await queryInterface.sequelize.query(
20
+ `UPDATE "ChannelTypes" SET "responsesTypes" = '${JSON.stringify(
21
+ DefaultChannelTypes
22
+ )}' WHERE "ChannelTypes"."channelName" = 'default'`
23
+ )
24
+ await queryInterface.sequelize.query(
25
+ `UPDATE "ChannelTypes" SET "responsesTypes" = '${JSON.stringify(
26
+ WebChatChannelTypes
27
+ )}' WHERE "ChannelTypes"."channelName" = 'webchat'`
28
+ )
29
+ await queryInterface.sequelize.query(
30
+ `UPDATE "ChannelTypes" SET "responsesTypes" = '${JSON.stringify(
31
+ WhatsAppChannelTypes
32
+ )}' WHERE "ChannelTypes"."channelName" = 'whatsapp_interaxa'`
33
+ )
34
+ return queryInterface.sequelize.query(
35
+ `UPDATE "ChannelTypes" SET "responsesTypes" = '${JSON.stringify(
36
+ WhatsAppChannelTypes
37
+ )}' WHERE "ChannelTypes"."channelName" = 'whatsapp_gupshup'`
38
+ )
39
+ } catch (error) {
40
+ console.log('error migration', error)
41
+ }
42
+ },
43
+
44
+ down: async (queryInterface, Sequelize) => {
45
+ return queryInterface.bulkDelete('ChannelTypes', null, {})
46
+ },
47
+ }
@@ -0,0 +1,65 @@
1
+ const { CHANNEL_TYPES } = require('./../models/channelTypes')
2
+
3
+ module.exports = {
4
+ up: async (queryInterface) => {
5
+ const WhatsAppChannelTypes = [
6
+ { action: 'text', display: 'Texto' },
7
+ { action: 'image', display: 'Imagem' },
8
+ { action: 'pdf', display: 'PDF' },
9
+ { action: 'video', display: 'Vídeo' },
10
+ { action: 'file', display: 'Arquivo' },
11
+ ]
12
+ const WebChatChannelTypes = [
13
+ { action: 'text', display: 'Texto' },
14
+ { action: 'image', display: 'Imagem' },
15
+ { action: 'pdf', display: 'PDF' },
16
+ { action: 'video', display: 'Vídeo' },
17
+ { action: 'file', display: 'Arquivo' },
18
+ { action: 'simple_button', display: 'Botão simples' },
19
+ ]
20
+ const DefaultChannelTypes = [{ action: 'text', display: 'Texto' }]
21
+ const Default = {
22
+ channelName: CHANNEL_TYPES.DEFAULT,
23
+ channelLabel: 'Padrão',
24
+ responsesTypes: JSON.stringify(DefaultChannelTypes),
25
+ createdAt: new Date(),
26
+ updatedAt: new Date(),
27
+ }
28
+ const webchat = {
29
+ channelName: CHANNEL_TYPES.WEB_CHAT,
30
+ channelLabel: 'WebChat',
31
+ responsesTypes: JSON.stringify(WebChatChannelTypes),
32
+ createdAt: new Date(),
33
+ updatedAt: new Date(),
34
+ }
35
+ const whatsappInteraxa = {
36
+ channelName: CHANNEL_TYPES.WHATSAPP_INTERAXA,
37
+ channelLabel: 'WhatsApp - Interaxa',
38
+ responsesTypes: JSON.stringify(WhatsAppChannelTypes),
39
+ direct_contact_name: 'Whatsapp',
40
+ direct_contact_code: 'whatsapp',
41
+ direct_contact_type: 'number',
42
+ createdAt: new Date(),
43
+ updatedAt: new Date(),
44
+ }
45
+ const whatsappGupshup = {
46
+ channelName: CHANNEL_TYPES.WHATSAPP_GUPSHUP,
47
+ channelLabel: 'WhatsApp - Gupshup',
48
+ responsesTypes: JSON.stringify(WhatsAppChannelTypes),
49
+ direct_contact_name: 'Whatsapp',
50
+ direct_contact_code: 'whatsapp',
51
+ direct_contact_type: 'number',
52
+ createdAt: new Date(),
53
+ updatedAt: new Date(),
54
+ }
55
+ return queryInterface.bulkInsert('ChannelTypes', [
56
+ Default,
57
+ webchat,
58
+ whatsappInteraxa,
59
+ whatsappGupshup,
60
+ ])
61
+ },
62
+ down: (queryInterface, Sequelize) => {
63
+ return queryInterface.bulkDelete('ChannelTypes', null, {})
64
+ },
65
+ }
@@ -0,0 +1,27 @@
1
+ 'use strict'
2
+
3
+ const { PROVIDER_TYPES } = require('./../models/intelligence')
4
+
5
+ module.exports = {
6
+ up: (queryInterface) => {
7
+ const ibm = {
8
+ name: 'Watson Assistant',
9
+ providerType: PROVIDER_TYPES.IBM,
10
+ visible: true,
11
+ createdAt: new Date(),
12
+ updatedAt: new Date(),
13
+ }
14
+ const itlean = {
15
+ name: 'LeanNLP',
16
+ providerType: PROVIDER_TYPES.ITLEAN,
17
+ visible: true,
18
+ createdAt: new Date(),
19
+ updatedAt: new Date(),
20
+ }
21
+
22
+ return queryInterface.bulkInsert('Intelligences', [ibm, itlean])
23
+ },
24
+ down: (queryInterface) => {
25
+ return queryInterface.bulkDelete('Intelligences', null, {})
26
+ },
27
+ }
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ up: (queryInterface, Sequelize) => {
3
+ return queryInterface.bulkInsert('Enterprises', [
4
+ {
5
+ cnpj: process.env.ENTERPRISE_CNPJ,
6
+ name: process.env.ENTERPRISE_NAME,
7
+ createdAt: new Date(),
8
+ updatedAt: new Date(),
9
+ },
10
+ ])
11
+ },
12
+ down: (queryInterface, Sequelize) => {
13
+ return queryInterface.bulkDelete('Enterprises', null, {})
14
+ },
15
+ }
@@ -0,0 +1,125 @@
1
+ module.exports = {
2
+ up: async (queryInterface, Sequelize) => {
3
+ return queryInterface.bulkInsert('Permissions', [
4
+ {
5
+ permissionCode: 'all',
6
+ description: 'Concede acesso a todas as funcionalidades do sistema.',
7
+ createdAt: new Date(),
8
+ updatedAt: new Date(),
9
+ },
10
+ {
11
+ permissionCode: 'crud_systemUsers',
12
+ description:
13
+ 'Permite a criação, leitura, alteração e deleção de usuários do sistema.',
14
+ createdAt: new Date(),
15
+ updatedAt: new Date(),
16
+ },
17
+ {
18
+ permissionCode: 'crud_departments',
19
+ description:
20
+ 'Permite a criação, leitura, alteração e deleção de Departamentos.',
21
+ createdAt: new Date(),
22
+ updatedAt: new Date(),
23
+ },
24
+ {
25
+ permissionCode: 'crud_subDepartments',
26
+ description:
27
+ 'Permite a criação, leitura, alteração e deleção de Sub-Departamentos.',
28
+ createdAt: new Date(),
29
+ updatedAt: new Date(),
30
+ },
31
+ {
32
+ permissionCode: 'crud_branches',
33
+ description:
34
+ 'Permite a criação, leitura, alteração e deleção de Filiais.',
35
+ createdAt: new Date(),
36
+ updatedAt: new Date(),
37
+ },
38
+ {
39
+ permissionCode: 'crud_lines',
40
+ description:
41
+ 'Permite a criação, leitura, alteração e deleção de Filas de Atendimento.',
42
+ createdAt: new Date(),
43
+ updatedAt: new Date(),
44
+ },
45
+ {
46
+ permissionCode: 'crud_lineConfigurations',
47
+ description:
48
+ 'Permite a leitura e alteração das configurações das Filas de Atendimento.',
49
+ createdAt: new Date(),
50
+ updatedAt: new Date(),
51
+ },
52
+ {
53
+ permissionCode: 'crud_channels',
54
+ description:
55
+ 'Permite a criação, leitura, alteração e deleção de Canais de Atendimento.',
56
+ createdAt: new Date(),
57
+ updatedAt: new Date(),
58
+ },
59
+ {
60
+ permissionCode: 'crud_attendances',
61
+ description: 'Permite a leitura e alteração de Atendimentos.',
62
+ createdAt: new Date(),
63
+ updatedAt: new Date(),
64
+ },
65
+ {
66
+ permissionCode: 'crud_quickMessages',
67
+ description:
68
+ 'Permite a criação, leitura, alteração e deleção de Mensagens Rápidas.',
69
+ createdAt: new Date(),
70
+ updatedAt: new Date(),
71
+ },
72
+ {
73
+ permissionCode: 'crud_responses',
74
+ description:
75
+ 'Permite a criação, leitura, alteração e deleção de respostas.',
76
+ createdAt: new Date(),
77
+ updatedAt: new Date(),
78
+ },
79
+ {
80
+ permissionCode: 'crud_openFAQs',
81
+ description:
82
+ 'Permite a criação, leitura, alteração e deleção de FAQS abertas.',
83
+ createdAt: new Date(),
84
+ updatedAt: new Date(),
85
+ },
86
+ {
87
+ permissionCode: 'crud_fields',
88
+ description: 'Permite a leitura e alteração de dicionário de campos.',
89
+ createdAt: new Date(),
90
+ updatedAt: new Date(),
91
+ },
92
+ {
93
+ permissionCode: 'crud_contacts',
94
+ description:
95
+ 'Permite a criação, leitura, alteração e deleção de contatos.',
96
+ createdAt: new Date(),
97
+ updatedAt: new Date(),
98
+ },
99
+ {
100
+ permissionCode: 'crud_groups',
101
+ description:
102
+ 'Permite a criação, leitura, alteração e deleção de grupos.',
103
+ createdAt: new Date(),
104
+ updatedAt: new Date(),
105
+ },
106
+ {
107
+ permissionCode: 'crud_messagesHsm',
108
+ description:
109
+ 'Permite a criação, leitura, alteração e deleção de disparo de mensagens HSM.',
110
+ createdAt: new Date(),
111
+ updatedAt: new Date(),
112
+ },
113
+ {
114
+ permissionCode: 'crud_sendHsm',
115
+ description:
116
+ 'Permite a criação, leitura, alteração e deleção de disparo de HSM.',
117
+ createdAt: new Date(),
118
+ updatedAt: new Date(),
119
+ },
120
+ ])
121
+ },
122
+ down: async (queryInterface, Sequelize) => {
123
+ return queryInterface.bulkDelete('Permissions', null, {})
124
+ },
125
+ }
@@ -0,0 +1,39 @@
1
+ module.exports = {
2
+ up: async (queryInterface, Sequelize) => {
3
+ return queryInterface.bulkInsert('Profiles', [
4
+ {
5
+ name: 'Master',
6
+ createdAt: new Date(),
7
+ updatedAt: new Date(),
8
+ },
9
+ {
10
+ name: 'Administrador',
11
+ createdAt: new Date(),
12
+ updatedAt: new Date(),
13
+ },
14
+ {
15
+ name: 'Supervisor Desk',
16
+ createdAt: new Date(),
17
+ updatedAt: new Date(),
18
+ },
19
+ {
20
+ name: 'Operador Desk',
21
+ createdAt: new Date(),
22
+ updatedAt: new Date(),
23
+ },
24
+ {
25
+ name: 'Operador Chatbot',
26
+ createdAt: new Date(),
27
+ updatedAt: new Date(),
28
+ },
29
+ {
30
+ name: 'Operador Direct',
31
+ createdAt: new Date(),
32
+ updatedAt: new Date(),
33
+ },
34
+ ])
35
+ },
36
+ down: async (queryInterface, Sequelize) => {
37
+ return queryInterface.bulkDelete('Profiles', null, {})
38
+ },
39
+ }
@@ -0,0 +1,80 @@
1
+ const models = require('./../models')
2
+ const profiles = [
3
+ {
4
+ name: 'Master',
5
+ permissions: ['all'],
6
+ },
7
+ {
8
+ name: 'Administrador',
9
+ permissions: [
10
+ 'crud_lines',
11
+ 'crud_systemUsers',
12
+ 'crud_responses',
13
+ 'crud_openFAQs',
14
+ 'crud_fields',
15
+ 'crud_contacts',
16
+ 'crud_groups',
17
+ 'crud_messagesHsm',
18
+ 'crud_sendHsm',
19
+ 'crud_lineConfigurations',
20
+ ],
21
+ },
22
+ {
23
+ name: 'Supervisor Desk',
24
+ permissions: ['crud_lineConfigurations', 'crud_quickMessages'],
25
+ },
26
+ {
27
+ name: 'Operador Direct',
28
+ permissions: [
29
+ 'crud_fields',
30
+ 'crud_contacts',
31
+ 'crud_groups',
32
+ 'crud_messagesHsm',
33
+ 'crud_sendHsm',
34
+ ],
35
+ },
36
+ {
37
+ name: 'Operador Chatbot',
38
+ permissions: ['crud_responses', 'crud_openFAQs'],
39
+ },
40
+ {
41
+ name: 'Operador Desk',
42
+ permissions: ['crud_attendances'],
43
+ },
44
+ ]
45
+
46
+ module.exports = {
47
+ up: async (queryInterface) => {
48
+ let prof_per = []
49
+
50
+ for (const prof of profiles) {
51
+ const profId = await queryInterface.rawSelect(
52
+ 'Profiles',
53
+ { where: { name: prof.name } },
54
+ ['id']
55
+ )
56
+
57
+ const per = await queryInterface.select(
58
+ models.Permissions,
59
+ 'Permissions',
60
+ { where: { permissionCode: prof.permissions } }
61
+ )
62
+
63
+ prof_per = prof_per.concat(
64
+ per.map((p) => {
65
+ return {
66
+ ProfileId: profId,
67
+ PermissionId: p.id,
68
+ createdAt: new Date(),
69
+ updatedAt: new Date(),
70
+ }
71
+ })
72
+ )
73
+ }
74
+
75
+ return queryInterface.bulkInsert('Profiles_Permissions', prof_per)
76
+ },
77
+ down: async (queryInterface, Sequelize) => {
78
+ return queryInterface.bulkDelete('Profiles_Permissions', null, {})
79
+ },
80
+ }