@itleanchatbot/shared-models-js-postgres 2.0.0 → 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 (97) 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/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.0",
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,