@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
package/README.md CHANGED
@@ -8,11 +8,36 @@ O projeto que for usar esses models compartilhados vão precisar ter as dependen
8
8
 
9
9
  ## Get Start ##
10
10
 
11
- Dependendo da estrurura do projeto pode ser necessário criar o arquivo da model no projeto e pegar a implementação do model de dentro do pacote.
11
+ Basta criar a instancia das models passando as configurações de banco
12
12
 
13
13
  Exemplo:
14
14
 
15
+ config.js
16
+
17
+ ```js
18
+ module.exports = {
19
+ username: process.env.DB_USERNAME,
20
+ password: process.env.DB_PASSWORD,
21
+ database: process.env.DATABASE_NAME,
22
+ host: process.env.DATABASE_HOST,
23
+ dialect: process.env.DATABASE_TYPE,
24
+ // seederStorage: 'sequelize',
25
+ // seederStorageTableName: 'SequelizeSeeder',
26
+ logging: false,
27
+ omitNull: true,
28
+ minifyAliases: true,
29
+ pool: {
30
+ max: 100,
31
+ min: 0,
32
+ idle: 10000,
33
+ },
34
+ }
35
+
36
+ ```
37
+
15
38
  ```js
16
- const { skill } = require('@itleanchatbot/shared-models-js-postgres')
17
- module.exports = skill.SkillModel
39
+ const config = require('../config')
40
+ const factoryModels = require('@itleanchatbot/shared-models-js-postgres/src/models')
41
+ module.exports = factoryModels(config)
42
+
18
43
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itleanchatbot/shared-models-js-postgres",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
4
  "description": "Shared Models JS Postgres",
5
5
  "main": "index.js",
6
6
  "license": "ISC",
@@ -37,8 +37,10 @@
37
37
  "prettier": "^2.2.1"
38
38
  },
39
39
  "dependencies": {
40
- "fs": "0.0.1-security",
41
- "path": "^0.12.7",
42
- "sequelize": "^6.9.0"
40
+ "crypto-js": "^4.0.0",
41
+ "pg": "^8.5.1",
42
+ "pg-hstore": "^2.3.3",
43
+ "sequelize": "^6.3.5",
44
+ "uuid-apikey": "^1.5.3"
43
45
  }
44
46
  }
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const { PROVIDER_TYPE } = require('../../presenters/constants')
3
+ const { PROVIDER_TYPE } = require('./../models/intelligence')
4
4
 
5
5
  module.exports = {
6
6
  up: async (queryInterface, Sequelize) => {
@@ -4,7 +4,7 @@ const {
4
4
  SKILL_LANG,
5
5
  STATUS,
6
6
  STATUS_TYPES,
7
- } = require('../../presenters/constants')
7
+ } = require('./../models/skill')
8
8
 
9
9
  module.exports = {
10
10
  up: async (queryInterface, Sequelize) => {
@@ -3,7 +3,7 @@
3
3
  const {
4
4
  ENTITY_VALUES_TYPE,
5
5
  ENTITY_VALUES_TYPES,
6
- } = require('../../presenters/constants')
6
+ } = require('./../models/entityValues')
7
7
 
8
8
  module.exports = {
9
9
  up: async (queryInterface, Sequelize) => {
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const { SYNONYMS_TYPE, SYNONYMS_TYPES } = require('../../presenters/constants')
3
+ const { SYNONYMS_TYPE, SYNONYMS_TYPES } = require('./../models/synonyms')
4
4
 
5
5
  module.exports = {
6
6
  up: async (queryInterface, Sequelize) => {
@@ -3,7 +3,7 @@
3
3
  const {
4
4
  RESPONSE_BOXES_TYPE,
5
5
  RESPONSE_BOXES_TYPES,
6
- } = require('../../presenters/constants')
6
+ } = require('./../models/responsesBoxes')
7
7
 
8
8
  module.exports = {
9
9
  up: async (queryInterface, Sequelize) => {
@@ -3,7 +3,7 @@
3
3
  const {
4
4
  API_INTEGRATION_TYPE,
5
5
  API_INTEGRATION_TYPES,
6
- } = require('../../presenters/constants')
6
+ } = require('./../models/apis')
7
7
 
8
8
  module.exports = {
9
9
  up: async (queryInterface, Sequelize) => {
@@ -3,7 +3,7 @@
3
3
  const {
4
4
  APIS_RESOURCES_BODY_TYPE,
5
5
  APIS_RESOURCES_BODY_TYPES,
6
- } = require('../../presenters/constants')
6
+ } = require('./../models/apiResourceBodies')
7
7
 
8
8
  module.exports = {
9
9
  up: async (queryInterface, Sequelize) => {
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const { HTTP_METHODS } = require('../../presenters/constants')
3
+ const { HTTP_METHODS } = require('./../models/apiResources')
4
4
 
5
5
  module.exports = {
6
6
  up: async (queryInterface, Sequelize) => {
@@ -3,7 +3,7 @@
3
3
  const {
4
4
  DIALOG_NODE_TYPE,
5
5
  DIALOG_NODE_TYPES,
6
- } = require('../../presenters/constants')
6
+ } = require('./../models/dialogNodes')
7
7
 
8
8
  module.exports = {
9
9
  up: async (queryInterface, Sequelize) => {
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const { STATUS_MESSAGES } = require('../../presenters/constants')
3
+ const { STATUS_MESSAGES } = require('./../models/messagesHsm')
4
4
 
5
5
  module.exports = {
6
6
  up: async (queryInterface, Sequelize) => {
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const { replaceEnum } = require('../../presenters/database/migrationHelpers')
3
+ const { replaceEnum } = require('./../presenters/database/migrationHelpers')
4
4
 
5
5
  module.exports = {
6
6
  up: async (queryInterface, Sequelize) => {
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
3
  const {
4
- apiResourceBodies: { APIS_RESOURCES_BODY_TYPES },
5
- } = require('@itleanchatbot/shared-models-js-postgres')
4
+ APIS_RESOURCES_BODY_TYPES,
5
+ } = require('./../models/apiResourceBodies')
6
6
 
7
7
  const oldEnumString = `'${APIS_RESOURCES_BODY_TYPES.JSON}', '${APIS_RESOURCES_BODY_TYPES.TEXT}', '${APIS_RESOURCES_BODY_TYPES.XML}', '${APIS_RESOURCES_BODY_TYPES.HTML}'`
8
8
  const newEnumString = `'${APIS_RESOURCES_BODY_TYPES.JSON}', '${APIS_RESOURCES_BODY_TYPES.TEXT}', '${APIS_RESOURCES_BODY_TYPES.XML}', '${APIS_RESOURCES_BODY_TYPES.HTML}', '${APIS_RESOURCES_BODY_TYPES.URL_ENCODE}'`
@@ -1,9 +1,9 @@
1
1
  'use strict'
2
2
 
3
- const { replaceEnum } = require('../../presenters/database/migrationHelpers')
3
+ const { replaceEnum } = require('./../presenters/database/migrationHelpers')
4
4
 
5
5
  module.exports = {
6
- up: async (queryInterface, Sequelize) => {
6
+ up: async (queryInterface) => {
7
7
  await replaceEnum(
8
8
  queryInterface,
9
9
  'Attendances',
@@ -17,7 +17,7 @@ module.exports = {
17
17
  )
18
18
  },
19
19
 
20
- down: async (queryInterface, Sequelize) => {
20
+ down: async (queryInterface) => {
21
21
  await replaceEnum(
22
22
  queryInterface,
23
23
  'Attendances',
@@ -1,4 +1,4 @@
1
- exports.ApiKeysModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
 
3
3
  const ApiKeys = sequelize.define('ApiKeys', {
4
4
  EnterpriseId: {
@@ -37,7 +37,7 @@ const APIS_RESOURCES_BODY_TYPES = {
37
37
  }
38
38
 
39
39
  module.exports = {
40
- ApiResourcesBodiesModel,
40
+ model: ApiResourcesBodiesModel,
41
41
  APIS_RESOURCES_BODY_TYPE,
42
42
  APIS_RESOURCES_BODY_TYPES
43
43
  }
@@ -1,4 +1,4 @@
1
- exports.ApiResourcesHeadersModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const ApiResourcesHeaders = sequelize.define('ApiResourcesHeaders', {
3
3
  ApiResourceId: {
4
4
  type: Sequelize.UUID,
@@ -1,4 +1,4 @@
1
- exports.ApiResourcesPathParamsModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const ApiResourcesPathParams = sequelize.define('ApiResourcesPathParams', {
3
3
  ApiResourceId: {
4
4
  type: Sequelize.UUID,
@@ -1,4 +1,4 @@
1
- exports.ApiResourcesQueryStringParamsModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const ApiResourcesQueryStringParams = sequelize.define(
3
3
  'ApiResourcesQueryStringParams',
4
4
  {
@@ -68,6 +68,6 @@ const ApiResourcesModel = (sequelize, Sequelize) => {
68
68
 
69
69
 
70
70
  module.exports = {
71
- ApiResourcesModel,
71
+ model: ApiResourcesModel,
72
72
  HTTP_METHODS
73
73
  }
@@ -59,7 +59,7 @@ const API_AUTHENTICATIONS_TYPES = {
59
59
 
60
60
 
61
61
  module.exports = {
62
- ApisModel,
62
+ model: ApisModel,
63
63
  API_INTEGRATION_TYPE,
64
64
  API_INTEGRATION_TYPES,
65
65
  API_AUTHENTICATIONS_TYPES
@@ -1,4 +1,4 @@
1
- exports.AttendanceScalesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const AttendanceScale = sequelize.define('AttendanceScales', {
3
3
  LineConfigurationId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.AttendanceScaleOffsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const AttendanceScale = sequelize.define('AttendanceScaleOffs', {
3
3
  LineConfigurationId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.AttendancesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Attendances = sequelize.define('Attendances', {
3
3
  SessionId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.BotIterablesModel = (sequelize, DataType) => {
1
+ exports.model = (sequelize, DataType) => {
2
2
  const BotIterables = sequelize.define('BotIterables', {
3
3
  context: {
4
4
  type: DataType.JSON,
@@ -8,10 +8,6 @@ exports.BotIterablesModel = (sequelize, DataType) => {
8
8
  type: DataType.STRING(100),
9
9
  allowNull: true,
10
10
  },
11
- context: {
12
- type: DataType.JSON,
13
- defaultValue: [],
14
- },
15
11
  action:{
16
12
  type: DataType.ENUM({
17
13
  values: ['bot', 'client'],
@@ -1,4 +1,4 @@
1
- exports.BranchesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Branches = sequelize.define('Branches', {
3
3
  EnterpriseId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.ChannelConfigurationsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const ChannelConfigurations = sequelize.define('ChannelConfigurations', {
3
3
  ChannelTypeId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,13 @@
1
- exports.ChannelTypesModel = (sequelize, DataTypes) => {
1
+ const CHANNEL_TYPES = {
2
+ WEB_CHAT: 'webchat',
3
+ WHATS_APP: 'whatsapp',
4
+ DEFAULT: 'default',
5
+ FACEBOOK: 'facebook',
6
+ WHATSAPP_INTERAXA: 'whatsapp_interaxa',
7
+ WHATSAPP_GUPSHUP: 'whatsapp_gupshup',
8
+ }
9
+
10
+ const ChannelTypesModel = (sequelize, DataTypes) => {
2
11
  const ChannelTypes = sequelize.define('ChannelTypes', {
3
12
  channelName: {
4
13
  allowNull: false,
@@ -50,3 +59,8 @@ exports.ChannelTypesModel = (sequelize, DataTypes) => {
50
59
 
51
60
  return ChannelTypes
52
61
  }
62
+
63
+ module.exports = {
64
+ model: ChannelTypesModel,
65
+ CHANNEL_TYPES,
66
+ }
@@ -1,4 +1,4 @@
1
- exports.ChannelsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Channels = sequelize.define('Channels', {
3
3
  SkillId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.ClientModel = (sequelize, DataType) => {
1
+ exports.model = (sequelize, DataType) => {
2
2
  const Client = sequelize.define('Client', {
3
3
  clientId: {
4
4
  type: DataType.STRING,
@@ -1,4 +1,4 @@
1
- exports.CommentsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Comments = sequelize.define('Comments', {
3
3
  AttendanceId: {
4
4
  type: DataTypes.UUID,
@@ -0,0 +1,41 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const Contacts = sequelize.define('Contacts', {
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
+ content: {
14
+ allowNull: false,
15
+ type: DataTypes.JSONB,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ allSelected: {
21
+ type: DataTypes.BOOLEAN,
22
+ allowNull: true,
23
+ defaultValue: false,
24
+ },
25
+ headers: {
26
+ allowNull: true,
27
+ type: DataTypes.JSONB,
28
+ },
29
+ })
30
+
31
+ Contacts.associate = (models) => {
32
+ Contacts.belongsTo(models.Enterprises)
33
+ Contacts.belongsToMany(models.Groups, {
34
+ through: 'GroupsContacts',
35
+ as: 'Groups',
36
+ })
37
+ }
38
+
39
+ return Contacts
40
+ }
41
+
@@ -1,4 +1,4 @@
1
- exports.CustomPostbacksModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
 
3
3
  const CustomPostbacks = sequelize.define('CustomPostbacks', {
4
4
  EnterpriseId: {
@@ -1,4 +1,4 @@
1
- exports.DepartmentsModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Departments = sequelize.define('Departments', {
3
3
  EnterpriseId: {
4
4
  type: DataTypes.UUID,
@@ -152,5 +152,5 @@ const DialogNodesModel = (sequelize, Sequelize) => {
152
152
  module.exports = {
153
153
  DIALOG_NODE_TYPE,
154
154
  DIALOG_NODE_TYPES,
155
- DialogNodesModel
155
+ model: DialogNodesModel
156
156
  }
@@ -1,4 +1,4 @@
1
- exports.DialogNodes_MultipleResponsesModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const DialogNodes_MultipleResponses = sequelize.define(
3
3
  'DialogNodes_MultipleResponses',
4
4
  {
@@ -1,4 +1,4 @@
1
- exports.DialogNodes_ApiResourcesModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const DialogNodes_ApiResources = sequelize.define(
3
3
  'DialogNodes_ApiResources',
4
4
  {
@@ -1,4 +1,4 @@
1
- exports.EndSessionTriggersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const EndSessionTriggers = sequelize.define('EndSessionTriggers', {
3
3
  DialogNodeId: {
4
4
  type: DataTypes.UUID,
@@ -1,4 +1,4 @@
1
- exports.EnterprisesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Enterprises = sequelize.define('Enterprises', {
3
3
  cnpj: {
4
4
  type: DataTypes.STRING(18),
@@ -1,4 +1,4 @@
1
- exports.EntityModel = (sequelize, types) => {
1
+ exports.model = (sequelize, types) => {
2
2
  const Entity = sequelize.define('Entity', {
3
3
  SkillId: {
4
4
  type: types.UUID,
@@ -57,7 +57,7 @@ const EntityValuesModel = (sequelize, types) => {
57
57
  }
58
58
 
59
59
  module.exports = {
60
- EntityValuesModel,
60
+ model: EntityValuesModel,
61
61
  ENTITY_VALUES_TYPE,
62
62
  ENTITY_VALUES_TYPES,
63
63
  }
@@ -1,4 +1,4 @@
1
- exports.FaqQuestionsModel = (sequelize, Sequelize) => {
1
+ exports.model = (sequelize, Sequelize) => {
2
2
  const OpenFAQs = sequelize.define('FaqQuestions', {
3
3
  name: {
4
4
  type: Sequelize.STRING(255),
@@ -1,4 +1,4 @@
1
- exports.FaqTriggersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const FaqTriggers = sequelize.define('FaqTriggers', {
3
3
  DialogNodeId: {
4
4
  type: DataTypes.UUID,
@@ -0,0 +1,28 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const Fields = sequelize.define('Fields', {
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
+ fields: {
14
+ allowNull: false,
15
+ type: DataTypes.JSONB,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ })
21
+
22
+ Fields.associate = (models) => {
23
+ Fields.belongsTo(models.Enterprises)
24
+ }
25
+
26
+ return Fields
27
+ }
28
+
@@ -1,4 +1,4 @@
1
- exports.FilesModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const Files = sequelize.define('Files', {
3
3
  EnterpriseId: {
4
4
  type: DataTypes.UUID,
@@ -0,0 +1,45 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const Groups = sequelize.define('Groups', {
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
+ name: {
14
+ allowNull: false,
15
+ type: DataTypes.STRING,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ allSelected: {
21
+ type: DataTypes.BOOLEAN,
22
+ allowNull: true,
23
+ defaultValue: false,
24
+ },
25
+ description: {
26
+ allowNull: true,
27
+ type: DataTypes.STRING,
28
+ },
29
+ })
30
+
31
+ Groups.associate = (models) => {
32
+ Groups.belongsTo(models.Enterprises)
33
+ Groups.belongsToMany(models.Contacts, {
34
+ through: 'GroupsContacts',
35
+ as: 'Contacts',
36
+ })
37
+ Groups.belongsToMany(models.SendHsms, {
38
+ through: 'GroupsSendHsms',
39
+ as: 'SendHsms',
40
+ })
41
+ }
42
+
43
+ return Groups
44
+ }
45
+
@@ -0,0 +1,13 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const GroupsContacts = sequelize.define('GroupsContacts', {
3
+ GroupId: {
4
+ type: DataTypes.UUID,
5
+ },
6
+ ContactId: {
7
+ type: DataTypes.UUID,
8
+ },
9
+ })
10
+
11
+ return GroupsContacts
12
+ }
13
+
@@ -0,0 +1,13 @@
1
+ exports.model = (sequelize, DataTypes) => {
2
+ const GroupsSendHsms = sequelize.define('GroupsSendHsms', {
3
+ GroupId: {
4
+ type: DataTypes.UUID,
5
+ },
6
+ SendHsmId: {
7
+ type: DataTypes.UUID,
8
+ },
9
+ })
10
+
11
+ return GroupsSendHsms
12
+ }
13
+
@@ -1,4 +1,4 @@
1
- exports.IbmProviderModel = (sequelize, types) => {
1
+ exports.model = (sequelize, types) => {
2
2
  const IbmProvider = sequelize.define('IbmProvider', {
3
3
  url: {
4
4
  type: types.STRING,
@@ -1,4 +1,4 @@
1
- exports.InactivityTriggersModel = (sequelize, DataTypes) => {
1
+ exports.model = (sequelize, DataTypes) => {
2
2
  const InactivityTriggers = sequelize.define('InactivityTriggers', {
3
3
  SkillId: {
4
4
  allowNull: false,
@@ -25,7 +25,7 @@ module.exports = (config) => {
25
25
  )
26
26
  })
27
27
  .forEach((file) => {
28
- const model = require(path.join(__dirname, file))(
28
+ const model = require(path.join(__dirname, file)).model(
29
29
  sequelize,
30
30
  Sequelize.DataTypes
31
31
  )
@@ -39,7 +39,7 @@ const IntelligenceModel = (sequelize, types) => {
39
39
  }
40
40
 
41
41
  module.exports = {
42
- IntelligenceModel,
42
+ model: IntelligenceModel,
43
43
  PROVIDER_TYPE,
44
44
  PROVIDER_TYPES,
45
45
  }
@@ -1,4 +1,4 @@
1
- exports.IntentionModel = (sequelize, types) => {
1
+ exports.model = (sequelize, types) => {
2
2
  const Intention = sequelize.define('Intention', {
3
3
  SkillId: {
4
4
  type: types.UUID,
@@ -1,4 +1,4 @@
1
- exports.IntentionValueModel = (sequelize, types) => {
1
+ exports.model = (sequelize, types) => {
2
2
  const IntentionValue = sequelize.define('IntentionValue', {
3
3
  IntentionId: {
4
4
  type: types.UUID,