@itleanchatbot/shared-models-js-postgres 1.0.18 → 1.0.20

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.
@@ -0,0 +1,55 @@
1
+
2
+ const RESPONSE_BOXES_TYPES = {
3
+ FLOW: 'flow',
4
+ FAQ: 'faq',
5
+ }
6
+
7
+ const RESPONSE_BOXES_TYPE = [
8
+ RESPONSE_BOXES_TYPES.FLOW,
9
+ RESPONSE_BOXES_TYPES.FAQ,
10
+ ]
11
+
12
+ const ResponsesModel = (sequelize, types) => {
13
+ const Responses = sequelize.define('Responses', {
14
+ SkillId: {
15
+ type: types.UUID,
16
+ references: {
17
+ model: 'Skill',
18
+ key: 'id',
19
+ },
20
+ referencesKey: 'id',
21
+ foreignKeyConstraint: true,
22
+ allowNull: false,
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ name: {
28
+ type: types.STRING,
29
+ allowNull: false,
30
+ validate: {
31
+ notEmpty: true,
32
+ },
33
+ },
34
+ type: {
35
+ type: types.ENUM({
36
+ values: RESPONSE_BOXES_TYPE,
37
+ }),
38
+ allowNull: false,
39
+ defaultValue: RESPONSE_BOXES_TYPES.FLOW,
40
+ },
41
+ })
42
+ Responses.associate = (models) => {
43
+ Responses.belongsTo(models.Skill)
44
+ Responses.hasMany(models.ResponsesBoxes)
45
+ Responses.hasOne(models.Response_DialogNodes)
46
+ }
47
+
48
+ return Responses
49
+ }
50
+
51
+ module.exports = {
52
+ RESPONSE_BOXES_TYPE,
53
+ RESPONSE_BOXES_TYPES,
54
+ ResponsesModel
55
+ }
@@ -0,0 +1,61 @@
1
+
2
+ const RESPONSE_BOXES_TYPES = {
3
+ FLOW: 'flow',
4
+ FAQ: 'faq',
5
+ }
6
+
7
+ const RESPONSE_BOXES_TYPE = [
8
+ RESPONSE_BOXES_TYPES.FLOW,
9
+ RESPONSE_BOXES_TYPES.FAQ,
10
+ ]
11
+
12
+ const ResponsesBoxesModel = (sequelize, types) => {
13
+ const ResponsesBoxes = sequelize.define('ResponsesBoxes', {
14
+ ResponseId: {
15
+ type: types.UUID,
16
+ references: {
17
+ model: 'Responses',
18
+ key: 'id',
19
+ },
20
+ referencesKey: 'id',
21
+ foreignKeyConstraint: true,
22
+ allowNull: false,
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ ResponseChannelId: {
28
+ type: types.UUID,
29
+ allowNull: true,
30
+ references: {
31
+ model: 'ResponseChannels',
32
+ key: 'id',
33
+ },
34
+ onDelete: 'RESTRICT',
35
+ onUpdate: 'CASCADE',
36
+ foreignKeyConstraint: true,
37
+ },
38
+ payload: {
39
+ type: types.JSON,
40
+ defaultValue: '{}',
41
+ allowNull: false,
42
+ },
43
+
44
+ type: {
45
+ type: types.ENUM({
46
+ values: RESPONSE_BOXES_TYPE,
47
+ }),
48
+ allowNull: false,
49
+ defaultValue: RESPONSE_BOXES_TYPES.FLOW,
50
+ },
51
+ })
52
+
53
+ return ResponsesBoxes
54
+ }
55
+
56
+
57
+ module.exports = {
58
+ RESPONSE_BOXES_TYPE,
59
+ RESPONSE_BOXES_TYPES,
60
+ ResponsesBoxesModel
61
+ }
package/src/sessions.js CHANGED
@@ -1,45 +1,45 @@
1
- exports.SessionsModel = (sequelize, DataTypes) => {
2
- const Sessions = sequelize.define('Sessions', {
3
- ChannelId: {
4
- type: DataTypes.UUID,
5
- allowNull: false,
6
- references: {
7
- model: 'Channels',
8
- key: 'id',
9
- },
10
- onDelete: 'RESTRICT',
11
- onUpdate: 'CASCADE',
12
- },
13
- context: {
14
- type: DataTypes.JSON,
15
- allowNull: true,
16
- validate: {
17
- notEmpty: false,
18
- },
19
- },
20
- tranship: {
21
- type: DataTypes.BOOLEAN,
22
- defaultValue: false,
23
- },
24
- status: {
25
- type: DataTypes.ENUM(['open', 'closed', 'expired']),
26
- defaultValue: 'open',
27
- allowNull: false,
28
- validate: {
29
- notEmpty: false,
30
- },
31
- },
32
- endOfSession: {
33
- type: DataTypes.DATE,
34
- allowNull: true,
35
- },
36
- })
37
-
38
- Sessions.associate = models => {
39
- Sessions.belongsTo(models.Channels)
40
- Sessions.hasOne(models.Attendances)
41
- Sessions.hasOne(models.SocketClients)
42
- }
43
-
44
- return Sessions
45
- }
1
+ exports.SessionsModel = (sequelize, DataTypes) => {
2
+ const Sessions = sequelize.define('Sessions', {
3
+ ChannelId: {
4
+ type: DataTypes.UUID,
5
+ allowNull: false,
6
+ references: {
7
+ model: 'Channels',
8
+ key: 'id',
9
+ },
10
+ onDelete: 'RESTRICT',
11
+ onUpdate: 'CASCADE',
12
+ },
13
+ context: {
14
+ type: DataTypes.JSON,
15
+ allowNull: true,
16
+ validate: {
17
+ notEmpty: false,
18
+ },
19
+ },
20
+ tranship: {
21
+ type: DataTypes.BOOLEAN,
22
+ defaultValue: false,
23
+ },
24
+ status: {
25
+ type: DataTypes.ENUM(['open', 'closed', 'expired']),
26
+ defaultValue: 'open',
27
+ allowNull: false,
28
+ validate: {
29
+ notEmpty: false,
30
+ },
31
+ },
32
+ endOfSession: {
33
+ type: DataTypes.DATE,
34
+ allowNull: true,
35
+ },
36
+ })
37
+
38
+ Sessions.associate = models => {
39
+ Sessions.belongsTo(models.Channels)
40
+ Sessions.hasOne(models.Attendances)
41
+ Sessions.hasOne(models.SocketClients)
42
+ }
43
+
44
+ return Sessions
45
+ }
package/src/skill.js CHANGED
@@ -1,106 +1,107 @@
1
- const SKILL_LANG = ['pt-br']
2
-
3
- const STATUS_TYPES = {
4
- NOT_ACTION: 'without_action',
5
- WAIT: 'waiting',
6
- SUCCESS: 'success',
7
- FAIL: 'failed',
8
- CANCEL: 'cancel',
9
- }
10
-
11
- const STATUS = [
12
- STATUS_TYPES.NOT_ACTION,
13
- STATUS_TYPES.WAIT,
14
- STATUS_TYPES.SUCCESS,
15
- STATUS_TYPES.FAIL,
16
- STATUS_TYPES.CANCEL,
17
- ]
18
-
19
- const SkillModel = (sequelize, types) => {
20
- const Skill = sequelize.define('Skill', {
21
- IntelligenceId: {
22
- type: types.UUID,
23
- allowNull: false,
24
- references: {
25
- model: 'Intelligence',
26
- key: 'id',
27
- },
28
- },
29
-
30
- AwsProviderId: {
31
- type: types.UUID,
32
- },
33
- IbmProviderId: {
34
- type: types.UUID,
35
- allowNull: true,
36
- references: {
37
- model: 'IbmProvider',
38
- key: 'id',
39
- },
40
- onDelete: 'RESTRICT',
41
- onUpdate: 'CASCADE',
42
- },
43
- ItleanProviderId: {
44
- type: types.UUID,
45
- allowNull: true,
46
- references: {
47
- model: 'ItleanProvider',
48
- key: 'id',
49
- },
50
- onDelete: 'RESTRICT',
51
- onUpdate: 'CASCADE',
52
- },
53
- name: {
54
- type: types.STRING,
55
- allowNull: false,
56
- validate: {
57
- notEmpty: true,
58
- },
59
- },
60
- description: {
61
- type: types.STRING,
62
- defaultValue: '',
63
- },
64
- lang: {
65
- type: types.ENUM({
66
- values: SKILL_LANG,
67
- }),
68
- allowNull: false,
69
- validate: {
70
- notEmpty: true,
71
- },
72
- },
73
- publishProcessStatus: {
74
- type: types.ENUM({
75
- values: STATUS,
76
- }),
77
- defaultValue: STATUS_TYPES.NOT_ACTION,
78
- },
79
- externalIbmId: {
80
- type: types.STRING,
81
- },
82
- publishedOnProvider: {
83
- type: types.BOOLEAN,
84
- defaultValue: false,
85
- },
86
- })
87
-
88
- Skill.associate = models => {
89
- Skill.belongsTo(models.Intelligence)
90
- Skill.belongsTo(models.IbmProvider)
91
- Skill.belongsTo(models.ItleanProvider)
92
- Skill.hasMany(models.Intention)
93
- Skill.hasMany(models.Entity)
94
- Skill.hasMany(models.Channels)
95
- Skill.hasMany(models.Skill_ApiResources)
96
- }
97
-
98
- return Skill
99
- }
100
-
101
- module.exports = {
102
- SkillModel,
103
- SKILL_LANG,
104
- STATUS,
105
- STATUS_TYPES,
106
- }
1
+ const SKILL_LANG = ['pt-br']
2
+
3
+ const STATUS_TYPES = {
4
+ NOT_ACTION: 'without_action',
5
+ WAIT: 'waiting',
6
+ SUCCESS: 'success',
7
+ FAIL: 'failed',
8
+ CANCEL: 'cancel',
9
+ }
10
+
11
+ const STATUS = [
12
+ STATUS_TYPES.NOT_ACTION,
13
+ STATUS_TYPES.WAIT,
14
+ STATUS_TYPES.SUCCESS,
15
+ STATUS_TYPES.FAIL,
16
+ STATUS_TYPES.CANCEL,
17
+ ]
18
+
19
+ const SkillModel = (sequelize, types) => {
20
+ const Skill = sequelize.define('Skill', {
21
+ IntelligenceId: {
22
+ type: types.UUID,
23
+ allowNull: false,
24
+ references: {
25
+ model: 'Intelligence',
26
+ key: 'id',
27
+ },
28
+ },
29
+
30
+ AwsProviderId: {
31
+ type: types.UUID,
32
+ },
33
+ IbmProviderId: {
34
+ type: types.UUID,
35
+ allowNull: true,
36
+ references: {
37
+ model: 'IbmProvider',
38
+ key: 'id',
39
+ },
40
+ onDelete: 'RESTRICT',
41
+ onUpdate: 'CASCADE',
42
+ },
43
+ ItleanProviderId: {
44
+ type: types.UUID,
45
+ allowNull: true,
46
+ references: {
47
+ model: 'ItleanProvider',
48
+ key: 'id',
49
+ },
50
+ onDelete: 'RESTRICT',
51
+ onUpdate: 'CASCADE',
52
+ },
53
+ name: {
54
+ type: types.STRING,
55
+ allowNull: false,
56
+ validate: {
57
+ notEmpty: true,
58
+ },
59
+ },
60
+ description: {
61
+ type: types.STRING,
62
+ defaultValue: '',
63
+ },
64
+ lang: {
65
+ type: types.ENUM({
66
+ values: SKILL_LANG,
67
+ }),
68
+ allowNull: false,
69
+ validate: {
70
+ notEmpty: true,
71
+ },
72
+ },
73
+ publishProcessStatus: {
74
+ type: types.ENUM({
75
+ values: STATUS,
76
+ }),
77
+ defaultValue: STATUS_TYPES.NOT_ACTION,
78
+ },
79
+ externalIbmId: {
80
+ type: types.STRING,
81
+ },
82
+ publishedOnProvider: {
83
+ type: types.BOOLEAN,
84
+ defaultValue: false,
85
+ },
86
+ })
87
+
88
+ Skill.associate = models => {
89
+ Skill.belongsTo(models.Intelligence)
90
+ Skill.belongsTo(models.IbmProvider)
91
+ Skill.belongsTo(models.ItleanProvider)
92
+ Skill.hasMany(models.Intention)
93
+ Skill.hasMany(models.Entity)
94
+ Skill.hasMany(models.Channels)
95
+ Skill.hasMany(models.Skill_ApiResources)
96
+ Skill.hasMany(models.DialogNodes)
97
+ }
98
+
99
+ return Skill
100
+ }
101
+
102
+ module.exports = {
103
+ SkillModel,
104
+ SKILL_LANG,
105
+ STATUS,
106
+ STATUS_TYPES,
107
+ }
@@ -1,31 +1,31 @@
1
- exports.Skill_ApiResourcesModel = (sequelize, Sequelize) => {
2
- const Skill_ApiResources = sequelize.define('Skill_ApiResources', {
3
- SkillId: {
4
- type: Sequelize.UUID,
5
- allowNull: false,
6
- references: {
7
- model: 'Skills',
8
- key: 'id',
9
- },
10
- onDelete: 'RESTRICT',
11
- onUpdate: 'CASCADE',
12
- },
13
- ApiResourceId: {
14
- type: Sequelize.UUID,
15
- allowNull: false,
16
- references: {
17
- model: 'ApiResources',
18
- key: 'id',
19
- },
20
- onDelete: 'RESTRICT',
21
- onUpdate: 'CASCADE',
22
- },
23
- })
24
-
25
- Skill_ApiResources.associate = models => {
26
- Skill_ApiResources.belongsTo(models.Skill)
27
- Skill_ApiResources.belongsTo(models.ApiResources)
28
- }
29
-
30
- return Skill_ApiResources
31
- }
1
+ exports.Skill_ApiResourcesModel = (sequelize, Sequelize) => {
2
+ const Skill_ApiResources = sequelize.define('Skill_ApiResources', {
3
+ SkillId: {
4
+ type: Sequelize.UUID,
5
+ allowNull: false,
6
+ references: {
7
+ model: 'Skills',
8
+ key: 'id',
9
+ },
10
+ onDelete: 'RESTRICT',
11
+ onUpdate: 'CASCADE',
12
+ },
13
+ ApiResourceId: {
14
+ type: Sequelize.UUID,
15
+ allowNull: false,
16
+ references: {
17
+ model: 'ApiResources',
18
+ key: 'id',
19
+ },
20
+ onDelete: 'RESTRICT',
21
+ onUpdate: 'CASCADE',
22
+ },
23
+ })
24
+
25
+ Skill_ApiResources.associate = models => {
26
+ Skill_ApiResources.belongsTo(models.Skill)
27
+ Skill_ApiResources.belongsTo(models.ApiResources)
28
+ }
29
+
30
+ return Skill_ApiResources
31
+ }
@@ -1,56 +1,56 @@
1
- exports.SocketClientsModel = (sequelize, DataTypes) => {
2
- const SocketClients = sequelize.define('SocketClients', {
3
- SessionId: {
4
- type: DataTypes.UUID,
5
- allowNull: true,
6
- references: {
7
- model: 'Sessions',
8
- key: 'id',
9
- },
10
- onDelete: 'RESTRICT',
11
- onUpdate: 'CASCADE',
12
- },
13
- SystemUserId: {
14
- type: DataTypes.UUID,
15
- allowNull: true,
16
- references: {
17
- model: 'SystemUsers',
18
- key: 'id',
19
- },
20
- onDelete: 'RESTRICT',
21
- onUpdate: 'CASCADE',
22
- },
23
- socketId: {
24
- type: DataTypes.STRING,
25
- allowNull: false,
26
- validate: {
27
- notEmpty: true,
28
- },
29
- },
30
- serverId: {
31
- type: DataTypes.UUID,
32
- allowNull: false,
33
- validate: {
34
- notEmpty: true
35
- }
36
- },
37
- chatSession: {
38
- type: DataTypes.STRING,
39
- allowNull: false
40
- },
41
- protocol: {
42
- type: DataTypes.STRING,
43
- allowNull: false,
44
- validate: {
45
- notEmpty: true,
46
- },
47
- },
48
- })
49
-
50
- SocketClients.associate = models => {
51
- SocketClients.belongsTo(models.Sessions)
52
- SocketClients.belongsTo(models.SystemUsers)
53
- }
54
-
55
- return SocketClients
56
- }
1
+ exports.SocketClientsModel = (sequelize, DataTypes) => {
2
+ const SocketClients = sequelize.define('SocketClients', {
3
+ SessionId: {
4
+ type: DataTypes.UUID,
5
+ allowNull: true,
6
+ references: {
7
+ model: 'Sessions',
8
+ key: 'id',
9
+ },
10
+ onDelete: 'RESTRICT',
11
+ onUpdate: 'CASCADE',
12
+ },
13
+ SystemUserId: {
14
+ type: DataTypes.UUID,
15
+ allowNull: true,
16
+ references: {
17
+ model: 'SystemUsers',
18
+ key: 'id',
19
+ },
20
+ onDelete: 'RESTRICT',
21
+ onUpdate: 'CASCADE',
22
+ },
23
+ socketId: {
24
+ type: DataTypes.STRING,
25
+ allowNull: false,
26
+ validate: {
27
+ notEmpty: true,
28
+ },
29
+ },
30
+ serverId: {
31
+ type: DataTypes.UUID,
32
+ allowNull: false,
33
+ validate: {
34
+ notEmpty: true
35
+ }
36
+ },
37
+ chatSession: {
38
+ type: DataTypes.STRING,
39
+ allowNull: false
40
+ },
41
+ protocol: {
42
+ type: DataTypes.STRING,
43
+ allowNull: false,
44
+ validate: {
45
+ notEmpty: true,
46
+ },
47
+ },
48
+ })
49
+
50
+ SocketClients.associate = models => {
51
+ SocketClients.belongsTo(models.Sessions)
52
+ SocketClients.belongsTo(models.SystemUsers)
53
+ }
54
+
55
+ return SocketClients
56
+ }
@@ -1,35 +1,35 @@
1
- exports.SubDepartmentsModel = (sequelize, DataTypes) => {
2
- const SubDepartments = sequelize.define('SubDepartments', {
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
- internalId: {
14
- allowNull: false,
15
- type: DataTypes.STRING(50),
16
- validate: {
17
- notEmpty: true,
18
- },
19
- },
20
- name: {
21
- allowNull: false,
22
- type: DataTypes.STRING(50),
23
- validate: {
24
- notEmpty: true,
25
- },
26
- },
27
- })
28
-
29
- SubDepartments.associate = models => {
30
- SubDepartments.belongsTo(models.Enterprises)
31
- SubDepartments.hasMany(models.Lines)
32
- }
33
-
34
- return SubDepartments
35
- }
1
+ exports.SubDepartmentsModel = (sequelize, DataTypes) => {
2
+ const SubDepartments = sequelize.define('SubDepartments', {
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
+ internalId: {
14
+ allowNull: false,
15
+ type: DataTypes.STRING(50),
16
+ validate: {
17
+ notEmpty: true,
18
+ },
19
+ },
20
+ name: {
21
+ allowNull: false,
22
+ type: DataTypes.STRING(50),
23
+ validate: {
24
+ notEmpty: true,
25
+ },
26
+ },
27
+ })
28
+
29
+ SubDepartments.associate = models => {
30
+ SubDepartments.belongsTo(models.Enterprises)
31
+ SubDepartments.hasMany(models.Lines)
32
+ }
33
+
34
+ return SubDepartments
35
+ }