@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
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": "1.5.91",
3
+ "version": "2.1.0",
4
4
  "description": "Shared Models JS Postgres",
5
5
  "main": "index.js",
6
6
  "license": "ISC",
@@ -36,5 +36,11 @@
36
36
  "jest": "^26.6.3",
37
37
  "prettier": "^2.2.1"
38
38
  },
39
- "dependencies": {}
39
+ "dependencies": {
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"
45
+ }
40
46
  }
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.sequelize.query(
6
+ 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";'
7
+ )
8
+ },
9
+ down: async (queryInterface, Sequelize) => {
10
+ return queryInterface.sequelize.query('DROP EXTENSION uuid-ossp;')
11
+ },
12
+ }
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('ChannelTypes', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ channelName: {
13
+ allowNull: false,
14
+ type: Sequelize.STRING(50),
15
+ unique: true,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ channelLabel: {
21
+ allowNull: false,
22
+ type: Sequelize.STRING(50),
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ responsesTypes: {
28
+ allowNull: true,
29
+ type: Sequelize.JSON,
30
+ },
31
+ direct_contact_name: {
32
+ allowNull: true,
33
+ type: Sequelize.STRING,
34
+ },
35
+ direct_contact_code: {
36
+ allowNull: true,
37
+ type: Sequelize.STRING,
38
+ },
39
+ direct_contact_type: {
40
+ allowNull: true,
41
+ type: Sequelize.STRING,
42
+ },
43
+ createdAt: {
44
+ allowNull: false,
45
+ type: Sequelize.DATE,
46
+ },
47
+ updatedAt: {
48
+ allowNull: false,
49
+ type: Sequelize.DATE,
50
+ },
51
+ })
52
+ },
53
+ down: async (queryInterface, Sequelize) => {
54
+ await queryInterface.dropTable('ChannelTypes')
55
+ },
56
+ }
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('ChannelConfigurations', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ ChannelTypeId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'ChannelTypes',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ fieldName: {
23
+ type: Sequelize.STRING(50),
24
+ allowNull: false,
25
+ validate: {
26
+ notEmpty: true,
27
+ },
28
+ },
29
+ fieldType: {
30
+ type: Sequelize.STRING(50),
31
+ allowNull: false,
32
+ validate: {
33
+ notEmpty: true,
34
+ },
35
+ },
36
+ fieldLabel: {
37
+ type: Sequelize.STRING(50),
38
+ allowNull: false,
39
+ validate: {
40
+ notEmpty: true,
41
+ },
42
+ },
43
+ createdAt: {
44
+ allowNull: false,
45
+ type: Sequelize.DATE,
46
+ },
47
+ updatedAt: {
48
+ allowNull: false,
49
+ type: Sequelize.DATE,
50
+ },
51
+ })
52
+ },
53
+ down: async (queryInterface, Sequelize) => {
54
+ await queryInterface.dropTable('ChannelConfigurations')
55
+ },
56
+ }
@@ -0,0 +1,47 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Enterprises', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ cnpj: {
13
+ type: Sequelize.STRING(18),
14
+ allowNull: false,
15
+ unique: true,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ name: {
21
+ allowNull: false,
22
+ type: Sequelize.STRING(50),
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ createdAt: {
28
+ allowNull: false,
29
+ type: Sequelize.DATE,
30
+ },
31
+ updatedAt: {
32
+ allowNull: false,
33
+ type: Sequelize.DATE,
34
+ },
35
+ })
36
+
37
+ await queryInterface.addIndex('Enterprises', ['cnpj'], {
38
+ indexName: 'enterprisesCnpj',
39
+ })
40
+ await queryInterface.addIndex('Enterprises', ['name'], {
41
+ indexName: 'enterprisesName',
42
+ })
43
+ },
44
+ down: async (queryInterface, Sequelize) => {
45
+ await queryInterface.dropTable('Enterprises')
46
+ },
47
+ }
@@ -0,0 +1,44 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Permissions', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ permissionCode: {
13
+ type: Sequelize.STRING(50),
14
+ allowNull: false,
15
+ unique: true,
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ description: {
21
+ allowNull: false,
22
+ type: Sequelize.STRING(255),
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ createdAt: {
28
+ allowNull: false,
29
+ type: Sequelize.DATE,
30
+ },
31
+ updatedAt: {
32
+ allowNull: false,
33
+ type: Sequelize.DATE,
34
+ },
35
+ })
36
+
37
+ await queryInterface.addIndex('Permissions', ['permissionCode'], {
38
+ indexName: 'permissionsPermissionCode',
39
+ })
40
+ },
41
+ down: async (queryInterface, Sequelize) => {
42
+ await queryInterface.dropTable('Permissions')
43
+ },
44
+ }
@@ -0,0 +1,33 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Profiles', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ name: {
13
+ allowNull: false,
14
+ unique: true,
15
+ type: Sequelize.STRING(50),
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ createdAt: {
21
+ allowNull: false,
22
+ type: Sequelize.DATE,
23
+ },
24
+ updatedAt: {
25
+ allowNull: false,
26
+ type: Sequelize.DATE,
27
+ },
28
+ })
29
+ },
30
+ down: async (queryInterface, Sequelize) => {
31
+ await queryInterface.dropTable('Profiles')
32
+ },
33
+ }
@@ -0,0 +1,45 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Profiles_Permissions', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ ProfileId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Profiles',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ PermissionId: {
23
+ type: Sequelize.UUID,
24
+ allowNull: false,
25
+ references: {
26
+ model: 'Permissions',
27
+ key: 'id',
28
+ },
29
+ onDelete: 'RESTRICT',
30
+ onUpdate: 'CASCADE',
31
+ },
32
+ createdAt: {
33
+ allowNull: false,
34
+ type: Sequelize.DATE,
35
+ },
36
+ updatedAt: {
37
+ allowNull: false,
38
+ type: Sequelize.DATE,
39
+ },
40
+ })
41
+ },
42
+ down: async (queryInterface, Sequelize) => {
43
+ await queryInterface.dropTable('Profiles_Permissions')
44
+ },
45
+ }
@@ -0,0 +1,61 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('SystemUsers', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ name: {
13
+ allowNull: false,
14
+ type: Sequelize.STRING(50),
15
+ validate: {
16
+ notEmpty: true,
17
+ },
18
+ },
19
+ email: {
20
+ allowNull: false,
21
+ type: Sequelize.TEXT,
22
+ unique: true,
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ password: {
28
+ type: Sequelize.TEXT,
29
+ },
30
+ jwt: {
31
+ type: Sequelize.STRING(500),
32
+ allowNull: true,
33
+ },
34
+ EnterpriseId: {
35
+ type: Sequelize.UUID,
36
+ allowNull: false,
37
+ references: {
38
+ model: 'Enterprises',
39
+ key: 'id',
40
+ },
41
+ onDelete: 'RESTRICT',
42
+ onUpdate: 'CASCADE',
43
+ },
44
+ maxSimultaneousAttendances: {
45
+ allowNull: true,
46
+ type: Sequelize.INTEGER,
47
+ },
48
+ createdAt: {
49
+ allowNull: false,
50
+ type: Sequelize.DATE,
51
+ },
52
+ updatedAt: {
53
+ allowNull: false,
54
+ type: Sequelize.DATE,
55
+ },
56
+ })
57
+ },
58
+ down: async (queryInterface, Sequelize) => {
59
+ await queryInterface.dropTable('SystemUsers')
60
+ },
61
+ }
@@ -0,0 +1,45 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('SystemUsers_Profiles', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ SystemUserId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'SystemUsers',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ ProfileId: {
23
+ type: Sequelize.UUID,
24
+ allowNull: false,
25
+ references: {
26
+ model: 'Profiles',
27
+ key: 'id',
28
+ },
29
+ onDelete: 'RESTRICT',
30
+ onUpdate: 'CASCADE',
31
+ },
32
+ createdAt: {
33
+ allowNull: false,
34
+ type: Sequelize.DATE,
35
+ },
36
+ updatedAt: {
37
+ allowNull: false,
38
+ type: Sequelize.DATE,
39
+ },
40
+ })
41
+ },
42
+ down: async (queryInterface, Sequelize) => {
43
+ await queryInterface.dropTable('SystemUsers_Profiles')
44
+ },
45
+ }
@@ -0,0 +1,49 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Departments', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ EnterpriseId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Enterprises',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ internalId: {
23
+ allowNull: false,
24
+ type: Sequelize.STRING(50),
25
+ validate: {
26
+ notEmpty: true,
27
+ },
28
+ },
29
+ name: {
30
+ allowNull: false,
31
+ type: Sequelize.STRING(50),
32
+ validate: {
33
+ notEmpty: true,
34
+ },
35
+ },
36
+ createdAt: {
37
+ allowNull: false,
38
+ type: Sequelize.DATE,
39
+ },
40
+ updatedAt: {
41
+ allowNull: false,
42
+ type: Sequelize.DATE,
43
+ },
44
+ })
45
+ },
46
+ down: async (queryInterface, Sequelize) => {
47
+ await queryInterface.dropTable('Departments')
48
+ },
49
+ }
@@ -0,0 +1,44 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Clients', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+
13
+ clientId: {
14
+ type: Sequelize.STRING,
15
+ allowNull: true,
16
+ validate: {
17
+ notEmpty: false,
18
+ },
19
+ },
20
+
21
+ serverId: {
22
+ type: Sequelize.STRING,
23
+ allowNull: false,
24
+ validate: {
25
+ notEmpty: true,
26
+ },
27
+ },
28
+
29
+ createdAt: {
30
+ allowNull: false,
31
+ type: Sequelize.DATE,
32
+ },
33
+
34
+ updatedAt: {
35
+ allowNull: false,
36
+ type: Sequelize.DATE,
37
+ },
38
+ })
39
+ },
40
+
41
+ down: async (queryInterface, Sequelize) => {
42
+ await queryInterface.dropTable('Clients')
43
+ },
44
+ }
@@ -0,0 +1,48 @@
1
+ 'use strict'
2
+
3
+ const { PROVIDER_TYPE } = require('./../models/intelligence')
4
+
5
+ module.exports = {
6
+ up: async (queryInterface, Sequelize) => {
7
+ await queryInterface.createTable('Intelligences', {
8
+ id: {
9
+ allowNull: false,
10
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
11
+ primaryKey: true,
12
+ type: Sequelize.UUID,
13
+ },
14
+ name: {
15
+ type: Sequelize.STRING(50),
16
+ allowNull: false,
17
+ validate: {
18
+ notEmpty: true,
19
+ },
20
+ },
21
+ providerType: {
22
+ type: Sequelize.ENUM({
23
+ values: PROVIDER_TYPE,
24
+ }),
25
+ allowNull: false,
26
+ validate: {
27
+ notEmpty: true,
28
+ },
29
+ },
30
+ visible: {
31
+ allowNull: false,
32
+ type: Sequelize.BOOLEAN,
33
+ defaultValue: true,
34
+ },
35
+ createdAt: {
36
+ allowNull: false,
37
+ type: Sequelize.DATE,
38
+ },
39
+ updatedAt: {
40
+ allowNull: false,
41
+ type: Sequelize.DATE,
42
+ },
43
+ })
44
+ },
45
+ down: async (queryInterface, Sequelize) => {
46
+ await queryInterface.dropTable('Intelligences')
47
+ },
48
+ }
@@ -0,0 +1,71 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('IbmProviders', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ IntelligenceId: {
13
+ type: Sequelize.UUID,
14
+ references: {
15
+ model: 'Intelligences',
16
+ key: 'id',
17
+ },
18
+ foreignKeyConstraint: true,
19
+ allowNull: false,
20
+ validate: {
21
+ notEmpty: true,
22
+ },
23
+ },
24
+ EnterpriseId: {
25
+ type: Sequelize.UUID,
26
+ allowNull: true,
27
+ references: {
28
+ model: 'Enterprises',
29
+ key: 'id',
30
+ },
31
+ onDelete: 'RESTRICT',
32
+ onUpdate: 'CASCADE',
33
+ },
34
+ url: {
35
+ type: Sequelize.STRING,
36
+ allowNull: true,
37
+ },
38
+ token: {
39
+ type: Sequelize.STRING,
40
+ allowNull: true,
41
+ },
42
+ active: {
43
+ allowNull: false,
44
+ type: Sequelize.BOOLEAN,
45
+ defaultValue: true,
46
+ },
47
+ apiVersion: {
48
+ type: Sequelize.STRING(5),
49
+ allowNull: false,
50
+ defaultValue: 'v1',
51
+ },
52
+ version: {
53
+ type: Sequelize.STRING(15),
54
+ allowNull: false,
55
+ defaultValue: '2018-09-20',
56
+ },
57
+ createdAt: {
58
+ allowNull: false,
59
+ type: Sequelize.DATE,
60
+ },
61
+ updatedAt: {
62
+ allowNull: false,
63
+ type: Sequelize.DATE,
64
+ },
65
+ })
66
+ },
67
+
68
+ down: async (queryInterface, Sequelize) => {
69
+ await queryInterface.dropTable('IbmProviders')
70
+ },
71
+ }