agrs-sequelize-sdk 1.1.38 → 1.1.39

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.
package/models/Pages.js CHANGED
@@ -1,74 +1,74 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const Pages = sequelize.define(
3
- "Pages",
4
- {
5
- id: {
6
- type: DataTypes.UUID,
7
- defaultValue: DataTypes.UUIDV4,
8
- primaryKey: true,
9
- },
10
- name: {
11
- type: DataTypes.STRING,
12
- allowNull: false,
13
- },
14
- code: {
15
- type: DataTypes.STRING,
16
- allowNull: false,
17
- unique: true,
18
- },
19
- link: {
20
- type: DataTypes.STRING,
21
- allowNull: true,
22
- },
23
- feedProvider: {
24
- type: DataTypes.ARRAY(DataTypes.STRING),
25
- allowNull: false,
26
- defaultValue: [], // Default value is an empty array
27
- },
28
- tasks: {
29
- type: DataTypes.ARRAY(DataTypes.STRING),
30
- allowNull: false,
31
- defaultValue: [], // Default value is an empty array
32
- },
33
- is_published:{
34
- type: DataTypes.BOOLEAN,
35
- allowNull: false,
36
- defaultValue: true,
37
- },
38
- Category: {
39
- type: DataTypes.STRING,
40
- allowNull: true,
41
- },
42
- Owner: {
43
- type: DataTypes.STRING,
44
- allowNull: true,
45
- },
46
- Status:{
47
- type: DataTypes.STRING,
48
- allowNull: true,
49
- },
50
- AdLibrary:{
51
- type: DataTypes.STRING,
52
- allowNull: true,
53
- },
54
- BusinessManager: {
55
- type: DataTypes.STRING,
56
- allowNull: true,
57
- },
58
- Users: {
59
- type: DataTypes.ARRAY(DataTypes.STRING),
60
- allowNull: false,
61
- defaultValue: [],
62
- },
63
- Archived: {
64
- type: DataTypes.BOOLEAN,
65
- allowNull: true,
66
- },
67
- },
68
- {
69
- tableName: "Pages",
70
- }
71
- );
72
-
73
- return Pages;
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const Pages = sequelize.define(
3
+ "Pages",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID,
7
+ defaultValue: DataTypes.UUIDV4,
8
+ primaryKey: true,
9
+ },
10
+ name: {
11
+ type: DataTypes.STRING,
12
+ allowNull: false,
13
+ },
14
+ code: {
15
+ type: DataTypes.STRING,
16
+ allowNull: false,
17
+ unique: true,
18
+ },
19
+ link: {
20
+ type: DataTypes.STRING,
21
+ allowNull: true,
22
+ },
23
+ feedProvider: {
24
+ type: DataTypes.ARRAY(DataTypes.STRING),
25
+ allowNull: false,
26
+ defaultValue: [], // Default value is an empty array
27
+ },
28
+ tasks: {
29
+ type: DataTypes.ARRAY(DataTypes.STRING),
30
+ allowNull: false,
31
+ defaultValue: [], // Default value is an empty array
32
+ },
33
+ is_published:{
34
+ type: DataTypes.BOOLEAN,
35
+ allowNull: false,
36
+ defaultValue: true,
37
+ },
38
+ Category: {
39
+ type: DataTypes.STRING,
40
+ allowNull: true,
41
+ },
42
+ Owner: {
43
+ type: DataTypes.STRING,
44
+ allowNull: true,
45
+ },
46
+ Status:{
47
+ type: DataTypes.STRING,
48
+ allowNull: true,
49
+ },
50
+ AdLibrary:{
51
+ type: DataTypes.STRING,
52
+ allowNull: true,
53
+ },
54
+ BusinessManager: {
55
+ type: DataTypes.STRING,
56
+ allowNull: true,
57
+ },
58
+ Users: {
59
+ type: DataTypes.ARRAY(DataTypes.STRING),
60
+ allowNull: false,
61
+ defaultValue: [],
62
+ },
63
+ Archived: {
64
+ type: DataTypes.BOOLEAN,
65
+ allowNull: true,
66
+ },
67
+ },
68
+ {
69
+ tableName: "Pages",
70
+ }
71
+ );
72
+
73
+ return Pages;
74
74
  };
@@ -1,46 +1,46 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const PipelineExecution = sequelize.define(
3
- "PipelineExecution",
4
- {
5
- id: {
6
- type: DataTypes.UUID,
7
- defaultValue: DataTypes.UUIDV4,
8
- primaryKey: true,
9
- },
10
- startTime: {
11
- type: DataTypes.DATE,
12
- allowNull: false,
13
- },
14
- endTime: {
15
- type: DataTypes.DATE,
16
- allowNull: false,
17
- },
18
- status: {
19
- type: DataTypes.ENUM("success", "failed"),
20
- allowNull: false,
21
- },
22
- fbDaysBack: {
23
- type: DataTypes.INTEGER,
24
- allowNull: true,
25
- },
26
- codeFuelDaysBack: {
27
- type: DataTypes.INTEGER,
28
- allowNull: true,
29
- },
30
- tonicDaysBack: {
31
- type: DataTypes.INTEGER,
32
- allowNull: true,
33
- },
34
- error: {
35
- type: DataTypes.TEXT,
36
- allowNull: true,
37
- },
38
- },
39
- {
40
- tableName: "pipeline_executions",
41
- timestamps: true,
42
- }
43
- );
44
-
45
- return PipelineExecution;
46
- };
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const PipelineExecution = sequelize.define(
3
+ "PipelineExecution",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID,
7
+ defaultValue: DataTypes.UUIDV4,
8
+ primaryKey: true,
9
+ },
10
+ startTime: {
11
+ type: DataTypes.DATE,
12
+ allowNull: false,
13
+ },
14
+ endTime: {
15
+ type: DataTypes.DATE,
16
+ allowNull: false,
17
+ },
18
+ status: {
19
+ type: DataTypes.ENUM("success", "failed"),
20
+ allowNull: false,
21
+ },
22
+ fbDaysBack: {
23
+ type: DataTypes.INTEGER,
24
+ allowNull: true,
25
+ },
26
+ codeFuelDaysBack: {
27
+ type: DataTypes.INTEGER,
28
+ allowNull: true,
29
+ },
30
+ tonicDaysBack: {
31
+ type: DataTypes.INTEGER,
32
+ allowNull: true,
33
+ },
34
+ error: {
35
+ type: DataTypes.TEXT,
36
+ allowNull: true,
37
+ },
38
+ },
39
+ {
40
+ tableName: "pipeline_executions",
41
+ timestamps: true,
42
+ }
43
+ );
44
+
45
+ return PipelineExecution;
46
+ };
@@ -0,0 +1,209 @@
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const RSOCFeedCampaign = sequelize.define(
3
+ "RSOCFeedCampaign",
4
+ {
5
+ AGRS_CID: {
6
+ type: DataTypes.STRING,
7
+ allowNull: false,
8
+ unique: true,
9
+ primaryKey: true,
10
+ },
11
+ AGRSAID: {
12
+ type: DataTypes.STRING,
13
+ allowNull: false,
14
+ comment: "Foreign key referencing Article.AGRSAID",
15
+ },
16
+ articleName: {
17
+ type: DataTypes.STRING,
18
+ allowNull: false,
19
+ comment: "Name of the associated article",
20
+ },
21
+ channelId: {
22
+ type: DataTypes.STRING,
23
+ allowNull: false,
24
+ comment: "Foreign key referencing Channel.channelId",
25
+ },
26
+ styleId: {
27
+ type: DataTypes.STRING,
28
+ allowNull: true,
29
+ comment: "Style ID (stid) inherited from Channel",
30
+ },
31
+ assignee: {
32
+ type: DataTypes.STRING,
33
+ allowNull: false,
34
+ },
35
+ status: {
36
+ type: DataTypes.STRING,
37
+ allowNull: false,
38
+ },
39
+ country: {
40
+ type: DataTypes.STRING,
41
+ allowNull: false,
42
+ },
43
+ vertical: {
44
+ type: DataTypes.STRING,
45
+ allowNull: false,
46
+ },
47
+ freeText: {
48
+ type: DataTypes.TEXT,
49
+ allowNull: true,
50
+ },
51
+ campaignName: {
52
+ type: DataTypes.STRING,
53
+ allowNull: false,
54
+ },
55
+ campaignId: {
56
+ type: DataTypes.STRING,
57
+ allowNull: true,
58
+ },
59
+ keywords: {
60
+ type: DataTypes.ARRAY(DataTypes.STRING),
61
+ allowNull: true,
62
+ },
63
+ finalLink: {
64
+ type: DataTypes.STRING(1024),
65
+ allowNull: true,
66
+ },
67
+ redirectLink: {
68
+ type: DataTypes.STRING(1024),
69
+ allowNull: true,
70
+ },
71
+ pixelId: {
72
+ type: DataTypes.STRING(1024),
73
+ allowNull: true,
74
+ },
75
+ token: {
76
+ type: DataTypes.STRING(1024),
77
+ allowNull: true,
78
+ },
79
+ accountId: {
80
+ type: DataTypes.STRING,
81
+ allowNull: false,
82
+ },
83
+ feedName: {
84
+ type: DataTypes.STRING,
85
+ allowNull: true,
86
+ defaultValue: "RSOC",
87
+ },
88
+ adTitle: {
89
+ type: DataTypes.STRING,
90
+ allowNull: true,
91
+ },
92
+ domain: {
93
+ type: DataTypes.STRING,
94
+ allowNull: true,
95
+ },
96
+ feedProvider: {
97
+ type: DataTypes.STRING,
98
+ allowNull: false,
99
+ defaultValue: "RSOC",
100
+ },
101
+ createdCampaignAt: {
102
+ type: DataTypes.DATE,
103
+ allowNull: true,
104
+ defaultValue: DataTypes.NOW,
105
+ },
106
+ draft: {
107
+ type: DataTypes.BOOLEAN,
108
+ allowNull: true,
109
+ defaultValue: false,
110
+ },
111
+ createdAt: {
112
+ type: DataTypes.DATE,
113
+ defaultValue: DataTypes.NOW,
114
+ },
115
+ updatedAt: {
116
+ type: DataTypes.DATE,
117
+ defaultValue: DataTypes.NOW,
118
+ },
119
+ },
120
+ {
121
+ tableName: "rsoc_feed_campaigns",
122
+ timestamps: true,
123
+ }
124
+ );
125
+
126
+ RSOCFeedCampaign.associate = (models) => {
127
+ RSOCFeedCampaign.belongsTo(models.Article, {
128
+ foreignKey: "AGRSAID",
129
+ targetKey: "AGRSAID",
130
+ as: "Article",
131
+ constraints: false,
132
+ });
133
+
134
+ RSOCFeedCampaign.belongsTo(models.Channel, {
135
+ foreignKey: "channelId",
136
+ targetKey: "channelId",
137
+ as: "Channel",
138
+ constraints: false,
139
+ });
140
+ };
141
+
142
+ RSOCFeedCampaign.beforeCreate(async (campaign) => {
143
+ const AGRS_CID = campaign.getDataValue("AGRS_CID");
144
+ if (AGRS_CID) {
145
+ const redirectLink = `https://ktwrjqdfv.com/${AGRS_CID}?campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}_${AGRS_CID}&placement={{placement}}&site_source={{site_source}}&fbclid={{fbclid}}`;
146
+ campaign.setDataValue("redirectLink", redirectLink);
147
+ }
148
+
149
+ const channel = await sequelize.models.Channel.findOne({
150
+ where: { channelId: campaign.channelId },
151
+ });
152
+ if (channel) {
153
+ const connectedCampaigns = channel.connectedCampaigns || [];
154
+ if (!connectedCampaigns.includes(campaign.AGRS_CID)) {
155
+ connectedCampaigns.push(campaign.AGRS_CID);
156
+ await channel.update({ connectedCampaigns });
157
+ }
158
+ }
159
+ });
160
+
161
+ RSOCFeedCampaign.beforeUpdate(async (campaign) => {
162
+ if (campaign.changed("AGRS_CID")) {
163
+ const AGRS_CID = campaign.getDataValue("AGRS_CID");
164
+ if (AGRS_CID) {
165
+ const redirectLink = `https://ktwrjqdfv.com/${AGRS_CID}?campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}_${AGRS_CID}&placement={{placement}}&site_source={{site_source}}&fbclid={{fbclid}}`;
166
+ campaign.setDataValue("redirectLink", redirectLink);
167
+ }
168
+ }
169
+
170
+ if (campaign.changed("channelId")) {
171
+ const oldChannelId = campaign.previous("channelId");
172
+ const newChannelId = campaign.channelId;
173
+
174
+ if (oldChannelId) {
175
+ const oldChannel = await sequelize.models.Channel.findOne({
176
+ where: { channelId: oldChannelId },
177
+ });
178
+ if (oldChannel) {
179
+ const connectedCampaigns = oldChannel.connectedCampaigns || [];
180
+ const updatedCampaigns = connectedCampaigns.filter(
181
+ (id) => id !== campaign.AGRS_CID
182
+ );
183
+ await oldChannel.update({ connectedCampaigns: updatedCampaigns });
184
+ }
185
+ }
186
+
187
+ const newChannel = await sequelize.models.Channel.findOne({
188
+ where: { channelId: newChannelId },
189
+ });
190
+ if (newChannel) {
191
+ const connectedCampaigns = newChannel.connectedCampaigns || [];
192
+ if (!connectedCampaigns.includes(campaign.AGRS_CID)) {
193
+ connectedCampaigns.push(campaign.AGRS_CID);
194
+ await newChannel.update({ connectedCampaigns });
195
+ }
196
+ }
197
+ }
198
+ });
199
+
200
+ RSOCFeedCampaign.beforeSave(async (campaign) => {
201
+ const AGRS_CID = campaign.getDataValue("AGRS_CID");
202
+ if (AGRS_CID && !campaign.getDataValue("redirectLink")) {
203
+ const redirectLink = `https://ktwrjqdfv.com/${AGRS_CID}?campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}_${AGRS_CID}&placement={{placement}}&site_source={{site_source}}&fbclid={{fbclid}}`;
204
+ campaign.setDataValue("redirectLink", redirectLink);
205
+ }
206
+ });
207
+
208
+ return RSOCFeedCampaign;
209
+ };
@@ -1,56 +1,56 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const RulesValues = sequelize.define(
3
- "RulesValues",
4
- {
5
- id: {
6
- type: DataTypes.UUID,
7
- defaultValue: DataTypes.UUIDV4,
8
- primaryKey: true,
9
- },
10
- name: {
11
- type: DataTypes.STRING,
12
- allowNull: false,
13
- },
14
- code: {
15
- type: DataTypes.STRING,
16
- allowNull: false,
17
- unique: true,
18
- },
19
- permissions: {
20
- type: DataTypes.ARRAY(DataTypes.STRING),
21
- allowNull: false,
22
- defaultValue: [],
23
- },
24
- feature: {
25
- type: DataTypes.STRING,
26
- allowNull: true,
27
- },
28
- parentId: {
29
- type: DataTypes.UUID,
30
- allowNull: true,
31
- references: {
32
- model: "RulesValues",
33
- key: "id",
34
- },
35
- onDelete: "CASCADE",
36
- },
37
- },
38
- {
39
- tableName: "RulesValues",
40
- }
41
- );
42
-
43
- // Self-referential association to define sub-rules
44
- RulesValues.hasMany(RulesValues, {
45
- as: "subRules",
46
- foreignKey: "parentId",
47
- onDelete: "CASCADE",
48
- });
49
-
50
- RulesValues.belongsTo(RulesValues, {
51
- as: "parentRule",
52
- foreignKey: "parentId",
53
- });
54
-
55
- return RulesValues;
56
- };
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const RulesValues = sequelize.define(
3
+ "RulesValues",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID,
7
+ defaultValue: DataTypes.UUIDV4,
8
+ primaryKey: true,
9
+ },
10
+ name: {
11
+ type: DataTypes.STRING,
12
+ allowNull: false,
13
+ },
14
+ code: {
15
+ type: DataTypes.STRING,
16
+ allowNull: false,
17
+ unique: true,
18
+ },
19
+ permissions: {
20
+ type: DataTypes.ARRAY(DataTypes.STRING),
21
+ allowNull: false,
22
+ defaultValue: [],
23
+ },
24
+ feature: {
25
+ type: DataTypes.STRING,
26
+ allowNull: true,
27
+ },
28
+ parentId: {
29
+ type: DataTypes.UUID,
30
+ allowNull: true,
31
+ references: {
32
+ model: "RulesValues",
33
+ key: "id",
34
+ },
35
+ onDelete: "CASCADE",
36
+ },
37
+ },
38
+ {
39
+ tableName: "RulesValues",
40
+ }
41
+ );
42
+
43
+ // Self-referential association to define sub-rules
44
+ RulesValues.hasMany(RulesValues, {
45
+ as: "subRules",
46
+ foreignKey: "parentId",
47
+ onDelete: "CASCADE",
48
+ });
49
+
50
+ RulesValues.belongsTo(RulesValues, {
51
+ as: "parentRule",
52
+ foreignKey: "parentId",
53
+ });
54
+
55
+ return RulesValues;
56
+ };
package/models/Users.js CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  module.exports = (sequelize, DataTypes) => {
3
2
  const Users = sequelize.define(
4
3
  "Users",
@@ -109,4 +108,4 @@ module.exports = (sequelize, DataTypes) => {
109
108
  };
110
109
 
111
110
  return Users;
112
- };
111
+ };
@@ -1,26 +1,26 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const Vertical = sequelize.define(
3
- "Vertical",
4
- {
5
- id: {
6
- type: DataTypes.UUID,
7
- defaultValue: DataTypes.UUIDV4,
8
- primaryKey: true,
9
- },
10
- name: {
11
- type: DataTypes.STRING,
12
- allowNull: false,
13
- },
14
- code: {
15
- type: DataTypes.STRING,
16
- allowNull: false,
17
- unique: true,
18
- },
19
- },
20
- {
21
- tableName: "Vertical",
22
- }
23
- );
24
-
25
- return Vertical;
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const Vertical = sequelize.define(
3
+ "Vertical",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID,
7
+ defaultValue: DataTypes.UUIDV4,
8
+ primaryKey: true,
9
+ },
10
+ name: {
11
+ type: DataTypes.STRING,
12
+ allowNull: false,
13
+ },
14
+ code: {
15
+ type: DataTypes.STRING,
16
+ allowNull: false,
17
+ unique: true,
18
+ },
19
+ },
20
+ {
21
+ tableName: "Vertical",
22
+ }
23
+ );
24
+
25
+ return Vertical;
26
26
  };