@itleanchatbot/shared-models-js-postgres 1.4.91 → 2.0.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 (180) hide show
  1. package/package.json +6 -2
  2. package/src/migrations/2021050204551-create-extension-uuid-ossp.js +12 -0
  3. package/src/migrations/20210503140511-create-channel-types.js +56 -0
  4. package/src/migrations/20210503141113-create-channel-configurations.js +56 -0
  5. package/src/migrations/20210503141528-create-enterprises.js +47 -0
  6. package/src/migrations/20210503142049-create-permissions.js.js +44 -0
  7. package/src/migrations/20210503142205-create-profiles.js.js +33 -0
  8. package/src/migrations/20210503142259-create-profiles-permissions.js +45 -0
  9. package/src/migrations/20210503142433-create-system-users.js +61 -0
  10. package/src/migrations/20210503142528-create-system-users-profiles.js +45 -0
  11. package/src/migrations/20210503142645-create-departments.js +49 -0
  12. package/src/migrations/20210503142739-create-clients.js +44 -0
  13. package/src/migrations/20210503142857-create-intelligences.js +48 -0
  14. package/src/migrations/20210503142959-create-ibm-providers.js +71 -0
  15. package/src/migrations/20210503151909-create-itlean-providers.js +53 -0
  16. package/src/migrations/20210503154612-create-skills.js +114 -0
  17. package/src/migrations/20210503161006-create-files.js +53 -0
  18. package/src/migrations/20210503161236-create-channels.js +66 -0
  19. package/src/migrations/20210503161308-create-sessions.js +67 -0
  20. package/src/migrations/20210503161503-create-subdepartments.js +49 -0
  21. package/src/migrations/20210503161543-create-branches.js +53 -0
  22. package/src/migrations/20210503161909-create-lines.js +55 -0
  23. package/src/migrations/20210503161947-create-entities.js +56 -0
  24. package/src/migrations/20210503162126-create-intentions.js +56 -0
  25. package/src/migrations/20210503162213-create-intentions-values.js +51 -0
  26. package/src/migrations/20210503162618-create-entities-values.js +67 -0
  27. package/src/migrations/20210503162752-create-synonyms.js +71 -0
  28. package/src/migrations/20210503163331-create-responses.js +58 -0
  29. package/src/migrations/20210503163437-create-responses-boxes.js +66 -0
  30. package/src/migrations/20210503163702-create-languages.js +42 -0
  31. package/src/migrations/20210503184109-create-groups.js +53 -0
  32. package/src/migrations/20210503185846-create-contacts.js +55 -0
  33. package/src/migrations/20210503190220-create-groups-contacts.js +47 -0
  34. package/src/migrations/20210503190338-create-fields.js +40 -0
  35. package/src/migrations/20210503190515-create-apis.js +65 -0
  36. package/src/migrations/20210503191041-create-apis-resources-body.js +46 -0
  37. package/src/migrations/20210503191107-create-apis-resources.js +74 -0
  38. package/src/migrations/20210503191253-create-apis-resources-headers.js +53 -0
  39. package/src/migrations/20210503193228-create-apis-resources-query-string-params.js +61 -0
  40. package/src/migrations/20210503193425-create-apis-resources-path-params.js +52 -0
  41. package/src/migrations/20210503193511-create-dialog-nodes.js +121 -0
  42. package/src/migrations/20210503193629-create-response-dialog-nodes.js +46 -0
  43. package/src/migrations/20210503193905-create-system-users-lines.js +45 -0
  44. package/src/migrations/20210503194004-create-attendances.js +80 -0
  45. package/src/migrations/20210503194036-create-tranship-conversations.js +65 -0
  46. package/src/migrations/20210503194204-create-line-configurations.js +75 -0
  47. package/src/migrations/20210504133611-create-templates.js +68 -0
  48. package/src/migrations/20210504133647-create-socket-clients.js +73 -0
  49. package/src/migrations/20210504143703-create-dialog-nodes-multiple-responses.js +47 -0
  50. package/src/migrations/20210504144332-create-messages-hsm.js +72 -0
  51. package/src/migrations/20210504144657-create-dialog-nodes-api-resources.js +54 -0
  52. package/src/migrations/20210504144730-create-send-hsm.js +62 -0
  53. package/src/migrations/20210504144859-create-messages-hsm-channels.js +48 -0
  54. package/src/migrations/20210504144931-create-open-faqs.js +55 -0
  55. package/src/migrations/20210504145032-create-return-hsm.js +50 -0
  56. package/src/migrations/20210504160623-create-group-send-hsm.js +52 -0
  57. package/src/migrations/20210504164445-create-extension-unaccent.js +11 -0
  58. package/src/migrations/20210504164516-create-extension-fuzzy.js +11 -0
  59. package/src/migrations/20210504164553-create-attendance-scale.js +48 -0
  60. package/src/migrations/20210504164613-create-attendance-scale-off.js +58 -0
  61. package/src/migrations/20210504165351-create-comments.js +42 -0
  62. package/src/migrations/20210504165421-create-quick-messages.js +49 -0
  63. package/src/migrations/20210504165514-create-bot-iterables.js +60 -0
  64. package/src/migrations/20210504165900-create-tranship-triggers.js +114 -0
  65. package/src/migrations/20210505025504-create-send-hsm-return-hsm.js +34 -0
  66. package/src/migrations/20210507012938-create-faq-triggers.js +68 -0
  67. package/src/migrations/20210518122431-alter-responses.js +17 -0
  68. package/src/migrations/20210524150418-create-faq-questions.js +51 -0
  69. package/src/migrations/20210524173157-alter-table-open-faq.js +17 -0
  70. package/src/migrations/20210526115430-alter-attendances.js +14 -0
  71. package/src/migrations/20210528101030-alter-attendances.js +82 -0
  72. package/src/migrations/20210609103918-create-table-postbakGupshup.js +46 -0
  73. package/src/migrations/20210613125036-unnamed-migration.js +21 -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/models/index.js +45 -0
  101. package/src/{stopwords.js → models/stopwords.js} +0 -6
  102. package/src/seeders/20210414180447-change-ChannelTypes.js +47 -0
  103. package/src/seeders/20210505130137-insert-channel-types.js +65 -0
  104. package/src/seeders/20210505132612-insert-intelligence.js +27 -0
  105. package/src/seeders/20210505134121-insert-enterprise.js +15 -0
  106. package/src/seeders/20210505134345-insert-permissions.js +125 -0
  107. package/src/seeders/20210505134549-insert-profiles.js +39 -0
  108. package/src/seeders/20210505134700-insert-profiles-permissions.js +80 -0
  109. package/src/seeders/20210505135931-insert-system-users.js +52 -0
  110. package/src/seeders/20210505140025-insert-system-users-profiles.js +26 -0
  111. package/src/seeders/20210505140049-insert-language.js +21 -0
  112. package/src/seeders/20210505140259-insert-itlean-provider.js +34 -0
  113. package/src/seeders/20210505140343-insert-templates.js +229 -0
  114. package/src/seeders/20210505140658-insert-channel-configurations.js +146 -0
  115. package/src/seeders/20210618132740-add-new-channel-configutations.js +45 -0
  116. package/src/seeders/20210817081230-insert-profiles-permissions.js +105 -0
  117. package/src/seeders/20210830131930-insert-profiles-permissions.js +71 -0
  118. package/src/seeders/20210902160430-insert-apiKey.js +30 -0
  119. package/src/seeders/20211005135921-edit-gupshup-reponseTypes.js +47 -0
  120. package/index.js +0 -125
  121. /package/src/{apiKeys.js → models/apiKeys.js} +0 -0
  122. /package/src/{apiResourceBodies.js → models/apiResourceBodies.js} +0 -0
  123. /package/src/{apiResourceHeaders.js → models/apiResourceHeaders.js} +0 -0
  124. /package/src/{apiResourcePathParams.js → models/apiResourcePathParams.js} +0 -0
  125. /package/src/{apiResourceQueryStringParams.js → models/apiResourceQueryStringParams.js} +0 -0
  126. /package/src/{apiResources.js → models/apiResources.js} +0 -0
  127. /package/src/{apis.js → models/apis.js} +0 -0
  128. /package/src/{attendanceScale.js → models/attendanceScale.js} +0 -0
  129. /package/src/{attendanceScaleOff.js → models/attendanceScaleOff.js} +0 -0
  130. /package/src/{attendances.js → models/attendances.js} +0 -0
  131. /package/src/{botIterable.js → models/botIterable.js} +0 -0
  132. /package/src/{branches.js → models/branches.js} +0 -0
  133. /package/src/{channelConfigurations.js → models/channelConfigurations.js} +0 -0
  134. /package/src/{channelTypes.js → models/channelTypes.js} +0 -0
  135. /package/src/{channels.js → models/channels.js} +0 -0
  136. /package/src/{client.js → models/client.js} +0 -0
  137. /package/src/{comments.js → models/comments.js} +0 -0
  138. /package/src/{customPostbacks.js → models/customPostbacks.js} +0 -0
  139. /package/src/{departments.js → models/departments.js} +0 -0
  140. /package/src/{dialogNodes.js → models/dialogNodes.js} +0 -0
  141. /package/src/{dialogNodes_MultipleResponses.js → models/dialogNodes_MultipleResponses.js} +0 -0
  142. /package/src/{dialogNodes_apiResources.js → models/dialogNodes_apiResources.js} +0 -0
  143. /package/src/{endSessionTriggers.js → models/endSessionTriggers.js} +0 -0
  144. /package/src/{enterprises.js → models/enterprises.js} +0 -0
  145. /package/src/{entity.js → models/entity.js} +0 -0
  146. /package/src/{entityValues.js → models/entityValues.js} +0 -0
  147. /package/src/{faqQuestions.js → models/faqQuestions.js} +0 -0
  148. /package/src/{faqTriggers.js → models/faqTriggers.js} +0 -0
  149. /package/src/{files.js → models/files.js} +0 -0
  150. /package/src/{ibmProvider.js → models/ibmProvider.js} +0 -0
  151. /package/src/{inactivityTriggers.js → models/inactivityTriggers.js} +0 -0
  152. /package/src/{intelligence.js → models/intelligence.js} +0 -0
  153. /package/src/{intention.js → models/intention.js} +0 -0
  154. /package/src/{intentionValue.js → models/intentionValue.js} +0 -0
  155. /package/src/{itleanProvider.js → models/itleanProvider.js} +0 -0
  156. /package/src/{lineConfigurations.js → models/lineConfigurations.js} +0 -0
  157. /package/src/{lines.js → models/lines.js} +0 -0
  158. /package/src/{messagesHsm.js → models/messagesHsm.js} +0 -0
  159. /package/src/{openFaqs.js → models/openFaqs.js} +0 -0
  160. /package/src/{permissions.js → models/permissions.js} +0 -0
  161. /package/src/{postbackGupshup.js → models/postbackGupshup.js} +0 -0
  162. /package/src/{profile.js → models/profile.js} +0 -0
  163. /package/src/{profiles_permission.js → models/profiles_permission.js} +0 -0
  164. /package/src/{quickMessages.js → models/quickMessages.js} +0 -0
  165. /package/src/{response_DialogNodes.js → models/response_DialogNodes.js} +0 -0
  166. /package/src/{responses.js → models/responses.js} +0 -0
  167. /package/src/{responsesBoxes.js → models/responsesBoxes.js} +0 -0
  168. /package/src/{returnHsm.js → models/returnHsm.js} +0 -0
  169. /package/src/{sessions.js → models/sessions.js} +0 -0
  170. /package/src/{skill.js → models/skill.js} +0 -0
  171. /package/src/{socketClients.js → models/socketClients.js} +0 -0
  172. /package/src/{subDepartments.js → models/subDepartments.js} +0 -0
  173. /package/src/{synonyms.js → models/synonyms.js} +0 -0
  174. /package/src/{systemUsers.js → models/systemUsers.js} +0 -0
  175. /package/src/{systemUsers_Lines.js → models/systemUsers_Lines.js} +0 -0
  176. /package/src/{systemUsers_profiles.js → models/systemUsers_profiles.js} +0 -0
  177. /package/src/{templates.js → models/templates.js} +0 -0
  178. /package/src/{transhipConversations.js → models/transhipConversations.js} +0 -0
  179. /package/src/{transhipInactivityTriggers.js → models/transhipInactivityTriggers.js} +0 -0
  180. /package/src/{transhipTriggers.js → models/transhipTriggers.js} +0 -0
@@ -0,0 +1,114 @@
1
+ 'use strict'
2
+
3
+ const {
4
+ SKILL_LANG,
5
+ STATUS,
6
+ STATUS_TYPES,
7
+ } = require('../../presenters/constants')
8
+
9
+ module.exports = {
10
+ up: async (queryInterface, Sequelize) => {
11
+ await queryInterface.createTable('Skills', {
12
+ id: {
13
+ allowNull: false,
14
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
15
+ primaryKey: true,
16
+ type: Sequelize.UUID,
17
+ },
18
+ IntelligenceId: {
19
+ type: Sequelize.UUID,
20
+ references: {
21
+ model: 'Intelligences',
22
+ key: 'id',
23
+ },
24
+ onDelete: 'RESTRICT',
25
+ onUpdate: 'CASCADE',
26
+ foreignKeyConstraint: true,
27
+ allowNull: false,
28
+ validate: {
29
+ notEmpty: true,
30
+ },
31
+ },
32
+ AwsProviderId: {
33
+ type: Sequelize.UUID,
34
+ allowNull: true,
35
+ },
36
+ IbmProviderId: {
37
+ type: Sequelize.UUID,
38
+ references: {
39
+ model: 'IbmProviders',
40
+ key: 'id',
41
+ },
42
+ onDelete: 'RESTRICT',
43
+ onUpdate: 'CASCADE',
44
+ foreignKeyConstraint: true,
45
+ allowNull: true,
46
+ },
47
+ ItleanProviderId: {
48
+ type: Sequelize.UUID,
49
+ references: {
50
+ model: 'ItleanProviders',
51
+ key: 'id',
52
+ },
53
+ onDelete: 'RESTRICT',
54
+ onUpdate: 'CASCADE',
55
+ foreignKeyConstraint: true,
56
+ allowNull: true,
57
+ },
58
+ externalIbmId: {
59
+ type: Sequelize.STRING,
60
+ allowNull: true,
61
+ },
62
+ name: {
63
+ type: Sequelize.STRING(50),
64
+ index: true,
65
+ allowNull: false,
66
+ validate: {
67
+ notEmpty: true,
68
+ },
69
+ },
70
+ description: {
71
+ type: Sequelize.STRING,
72
+ defaultValue: '',
73
+ },
74
+ lang: {
75
+ index: true,
76
+ type: Sequelize.ENUM({
77
+ values: SKILL_LANG,
78
+ }),
79
+ allowNull: false,
80
+ validate: {
81
+ notEmpty: true,
82
+ },
83
+ },
84
+ publishedOnProvider: {
85
+ allowNull: false,
86
+ type: Sequelize.BOOLEAN,
87
+ defaultValue: false,
88
+ },
89
+ publishProcessStatus: {
90
+ allowNull: false,
91
+ type: Sequelize.ENUM({
92
+ values: STATUS,
93
+ }),
94
+ defaultValue: STATUS_TYPES.NOT_ACTION,
95
+ },
96
+ createdAt: {
97
+ allowNull: false,
98
+ type: Sequelize.DATE,
99
+ },
100
+ updatedAt: {
101
+ allowNull: false,
102
+ type: Sequelize.DATE,
103
+ },
104
+ deletedAt: {
105
+ allowNull: true,
106
+ type: Sequelize.DATE,
107
+ },
108
+ })
109
+ },
110
+
111
+ down: async (queryInterface, Sequelize) => {
112
+ await queryInterface.dropTable('Skills')
113
+ },
114
+ }
@@ -0,0 +1,53 @@
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
+ await queryInterface.createTable('Files', {
10
+ id: {
11
+ allowNull: false,
12
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
13
+ primaryKey: true,
14
+ type: Sequelize.UUID,
15
+ },
16
+ EnterpriseId: {
17
+ type: Sequelize.UUID,
18
+ allowNull: false,
19
+ references: {
20
+ model: 'Enterprises',
21
+ key: 'id',
22
+ },
23
+ onDelete: 'RESTRICT',
24
+ onUpdate: 'CASCADE',
25
+ },
26
+ base64: {
27
+ type: Sequelize.TEXT,
28
+ allowNull: false,
29
+ validate: {
30
+ notEmpty: true,
31
+ },
32
+ },
33
+ type: {
34
+ type: Sequelize.TEXT,
35
+ allowNull: false,
36
+ validate: {
37
+ notEmpty: true,
38
+ },
39
+ },
40
+ createdAt: {
41
+ allowNull: false,
42
+ type: Sequelize.DATE,
43
+ },
44
+ updatedAt: {
45
+ allowNull: false,
46
+ type: Sequelize.DATE,
47
+ },
48
+ })
49
+ },
50
+ down: async (queryInterface, Sequelize) => {
51
+ await queryInterface.dropTable('Files')
52
+ },
53
+ }
@@ -0,0 +1,66 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Channels', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ SkillId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Skills',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ ChannelTypeId: {
23
+ type: Sequelize.UUID,
24
+ allowNull: false,
25
+ references: {
26
+ model: 'ChannelTypes',
27
+ key: 'id',
28
+ },
29
+ onDelete: 'RESTRICT',
30
+ onUpdate: 'CASCADE',
31
+ },
32
+ FileId: {
33
+ type: Sequelize.UUID,
34
+ allowNull: true,
35
+ references: {
36
+ model: 'Files',
37
+ key: 'id',
38
+ },
39
+ onDelete: 'RESTRICT',
40
+ onUpdate: 'CASCADE',
41
+ },
42
+ name: {
43
+ type: Sequelize.STRING(50),
44
+ allowNull: false,
45
+ validate: {
46
+ notEmpty: true,
47
+ },
48
+ },
49
+ configurations: {
50
+ type: Sequelize.JSON,
51
+ allowNull: false,
52
+ },
53
+ createdAt: {
54
+ allowNull: false,
55
+ type: Sequelize.DATE,
56
+ },
57
+ updatedAt: {
58
+ allowNull: false,
59
+ type: Sequelize.DATE,
60
+ },
61
+ })
62
+ },
63
+ down: async (queryInterface, Sequelize) => {
64
+ await queryInterface.dropTable('Channels')
65
+ },
66
+ }
@@ -0,0 +1,67 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Sessions', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ ChannelId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Channels',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ context: {
23
+ type: Sequelize.JSON,
24
+ allowNull: true,
25
+ validate: {
26
+ notEmpty: false,
27
+ },
28
+ },
29
+ tranship: {
30
+ type: Sequelize.BOOLEAN,
31
+ defaultValue: false,
32
+ },
33
+ status: {
34
+ type: Sequelize.ENUM(['open', 'closed', 'expired']),
35
+ allowNull: false,
36
+ validate: {
37
+ notEmpty: false,
38
+ },
39
+ },
40
+ endOfSession: {
41
+ type: Sequelize.DATE,
42
+ allowNull: true,
43
+ },
44
+ ClientId: {
45
+ type: Sequelize.UUID,
46
+ references: {
47
+ model: 'Clients',
48
+ key: 'id',
49
+ },
50
+ allowNull: false,
51
+ onDelete: 'CASCADE',
52
+ onUpdate: 'CASCADE',
53
+ },
54
+ createdAt: {
55
+ allowNull: false,
56
+ type: Sequelize.DATE,
57
+ },
58
+ updatedAt: {
59
+ allowNull: false,
60
+ type: Sequelize.DATE,
61
+ },
62
+ })
63
+ },
64
+ down: async (queryInterface, Sequelize) => {
65
+ await queryInterface.dropTable('Sessions')
66
+ },
67
+ }
@@ -0,0 +1,49 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('SubDepartments', {
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('SubDepartments')
48
+ },
49
+ }
@@ -0,0 +1,53 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Branches', {
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
+ urlApi: {
37
+ allowNull: true,
38
+ type: Sequelize.STRING(255),
39
+ },
40
+ createdAt: {
41
+ allowNull: false,
42
+ type: Sequelize.DATE,
43
+ },
44
+ updatedAt: {
45
+ allowNull: false,
46
+ type: Sequelize.DATE,
47
+ },
48
+ })
49
+ },
50
+ down: async (queryInterface, Sequelize) => {
51
+ await queryInterface.dropTable('Branches')
52
+ },
53
+ }
@@ -0,0 +1,55 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Lines', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ BranchId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Branches',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'RESTRICT',
20
+ onUpdate: 'CASCADE',
21
+ },
22
+ DepartmentId: {
23
+ type: Sequelize.UUID,
24
+ allowNull: false,
25
+ references: {
26
+ model: 'Departments',
27
+ key: 'id',
28
+ },
29
+ onDelete: 'RESTRICT',
30
+ onUpdate: 'CASCADE',
31
+ },
32
+ SubDepartmentId: {
33
+ type: Sequelize.UUID,
34
+ allowNull: false,
35
+ references: {
36
+ model: 'SubDepartments',
37
+ key: 'id',
38
+ },
39
+ onDelete: 'RESTRICT',
40
+ onUpdate: 'CASCADE',
41
+ },
42
+ createdAt: {
43
+ allowNull: false,
44
+ type: Sequelize.DATE,
45
+ },
46
+ updatedAt: {
47
+ allowNull: false,
48
+ type: Sequelize.DATE,
49
+ },
50
+ })
51
+ },
52
+ down: async (queryInterface, Sequelize) => {
53
+ await queryInterface.dropTable('Lines')
54
+ },
55
+ }
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Entities', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+
13
+ SkillId: {
14
+ type: Sequelize.UUID,
15
+ allowNull: false,
16
+ references: {
17
+ model: 'Skills',
18
+ key: 'id',
19
+ },
20
+ onDelete: 'RESTRICT',
21
+ onUpdate: 'CASCADE',
22
+ foreignKeyConstraint: true,
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ name: {
28
+ type: Sequelize.STRING(50),
29
+ allowNull: false,
30
+ validate: {
31
+ notEmpty: true,
32
+ },
33
+ },
34
+ values: {
35
+ allowNull: true,
36
+ type: Sequelize.STRING,
37
+ },
38
+ createdAt: {
39
+ allowNull: false,
40
+ type: Sequelize.DATE,
41
+ },
42
+ updatedAt: {
43
+ allowNull: false,
44
+ type: Sequelize.DATE,
45
+ },
46
+ })
47
+
48
+ await queryInterface.addIndex('Entities', ['name'], {
49
+ indexName: 'entityName',
50
+ })
51
+ },
52
+
53
+ down: async (queryInterface, Sequelize) => {
54
+ await queryInterface.dropTable('Entities')
55
+ },
56
+ }
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('Intentions', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+
13
+ SkillId: {
14
+ type: Sequelize.UUID,
15
+ allowNull: false,
16
+ references: {
17
+ model: 'Skills',
18
+ key: 'id',
19
+ },
20
+ onDelete: 'RESTRICT',
21
+ onUpdate: 'CASCADE',
22
+ foreignKeyConstraint: true,
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+
28
+ name: {
29
+ type: Sequelize.STRING(50),
30
+ allowNull: false,
31
+ validate: {
32
+ notEmpty: true,
33
+ },
34
+ },
35
+ description: {
36
+ type: Sequelize.STRING,
37
+ },
38
+ createdAt: {
39
+ allowNull: false,
40
+ type: Sequelize.DATE,
41
+ },
42
+ updatedAt: {
43
+ allowNull: false,
44
+ type: Sequelize.DATE,
45
+ },
46
+ })
47
+
48
+ await queryInterface.addIndex('Intentions', ['name'], {
49
+ indexName: 'intentionName',
50
+ })
51
+ },
52
+
53
+ down: async (queryInterface, Sequelize) => {
54
+ await queryInterface.dropTable('Intentions')
55
+ },
56
+ }
@@ -0,0 +1,51 @@
1
+ 'use strict'
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, Sequelize) => {
5
+ await queryInterface.createTable('IntentionValues', {
6
+ id: {
7
+ allowNull: false,
8
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
9
+ primaryKey: true,
10
+ type: Sequelize.UUID,
11
+ },
12
+ IntentionId: {
13
+ type: Sequelize.UUID,
14
+ allowNull: false,
15
+ references: {
16
+ model: 'Intentions',
17
+ key: 'id',
18
+ },
19
+ onDelete: 'CASCADE',
20
+ onUpdate: 'CASCADE',
21
+ foreignKeyConstraint: true,
22
+ validate: {
23
+ notEmpty: true,
24
+ },
25
+ },
26
+ name: {
27
+ type: Sequelize.STRING(50),
28
+ allowNull: false,
29
+ validate: {
30
+ notEmpty: true,
31
+ },
32
+ },
33
+ createdAt: {
34
+ allowNull: false,
35
+ type: Sequelize.DATE,
36
+ },
37
+ updatedAt: {
38
+ allowNull: false,
39
+ type: Sequelize.DATE,
40
+ },
41
+ })
42
+
43
+ await queryInterface.addIndex('IntentionValues', ['name'], {
44
+ indexName: 'intentionValueName',
45
+ })
46
+ },
47
+
48
+ down: async (queryInterface, Sequelize) => {
49
+ await queryInterface.dropTable('IntentionValues')
50
+ },
51
+ }
@@ -0,0 +1,67 @@
1
+ 'use strict'
2
+
3
+ const {
4
+ ENTITY_VALUES_TYPE,
5
+ ENTITY_VALUES_TYPES,
6
+ } = require('../../presenters/constants')
7
+
8
+ module.exports = {
9
+ up: async (queryInterface, Sequelize) => {
10
+ await queryInterface.createTable('EntityValues', {
11
+ id: {
12
+ allowNull: false,
13
+ defaultValue: Sequelize.literal('uuid_generate_v4()'),
14
+ primaryKey: true,
15
+ type: Sequelize.UUID,
16
+ },
17
+ EntityId: {
18
+ type: Sequelize.UUID,
19
+ allowNull: false,
20
+ references: {
21
+ model: 'Entities',
22
+ key: 'id',
23
+ },
24
+ onDelete: 'CASCADE',
25
+ onUpdate: 'CASCADE',
26
+ foreignKeyConstraint: true,
27
+ validate: {
28
+ notEmpty: true,
29
+ },
30
+ },
31
+ name: {
32
+ type: Sequelize.STRING(50),
33
+ allowNull: false,
34
+ validate: {
35
+ notEmpty: true,
36
+ },
37
+ },
38
+ synonyms: {
39
+ allowNull: true,
40
+ type: Sequelize.STRING,
41
+ },
42
+ type: {
43
+ type: Sequelize.ENUM({
44
+ values: ENTITY_VALUES_TYPE,
45
+ }),
46
+ allowNull: false,
47
+ defaultValue: ENTITY_VALUES_TYPES.SYNONYM,
48
+ },
49
+ createdAt: {
50
+ allowNull: false,
51
+ type: Sequelize.DATE,
52
+ },
53
+ updatedAt: {
54
+ allowNull: false,
55
+ type: Sequelize.DATE,
56
+ },
57
+ })
58
+
59
+ await queryInterface.addIndex('EntityValues', ['name'], {
60
+ indexName: 'entityValuesName',
61
+ })
62
+ },
63
+
64
+ down: async (queryInterface, Sequelize) => {
65
+ await queryInterface.dropTable('EntityValues')
66
+ },
67
+ }