agrs-sequelize-sdk 1.2.99 → 1.3.1

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 (47) hide show
  1. package/migrations/add-requested-from-dashboard-to-articles.js +17 -17
  2. package/models/AdAccountValues.js +25 -25
  3. package/models/AdHistory.js +30 -30
  4. package/models/AdPerformance.js +94 -94
  5. package/models/AdSet.js +289 -289
  6. package/models/AdSetHistory.js +30 -30
  7. package/models/AdsetPerformance.js +126 -126
  8. package/models/Article.js +190 -190
  9. package/models/AutomationRule.js +161 -127
  10. package/models/Buyers.js +25 -25
  11. package/models/Campaign.js +157 -157
  12. package/models/CampaignActionHistory.js +86 -86
  13. package/models/CampaignCreationLog.js +309 -309
  14. package/models/CampaignHistory.js +33 -33
  15. package/models/Channel.js +55 -55
  16. package/models/Domain.js +25 -25
  17. package/models/DynamicFeed.js +212 -212
  18. package/models/ExplorAdsChannel.js +61 -61
  19. package/models/Feed.js +33 -33
  20. package/models/FrontStoryChannel.js +59 -59
  21. package/models/MineChannel.js +42 -42
  22. package/models/Pages.js +81 -81
  23. package/models/PipelineExecution.js +59 -59
  24. package/models/Presets.js +34 -34
  25. package/models/RSOCFeedCampaign.js +357 -357
  26. package/models/RsocKeywordPerformance.js +110 -110
  27. package/models/RuleAction.js +90 -90
  28. package/models/RuleCondition.js +98 -98
  29. package/models/RuleExecution.js +107 -107
  30. package/models/RulesValues.js +56 -56
  31. package/models/SupportedLocale.js +23 -23
  32. package/models/SyncHistory.js +249 -249
  33. package/models/Tier2_AdAccounts.js +110 -110
  34. package/models/Tier2_Assets.js +70 -70
  35. package/models/Tier2_BusinessManagers.js +105 -105
  36. package/models/Tier2_CreditLines.js +99 -99
  37. package/models/Tier2_Pages.js +91 -91
  38. package/models/Tier2_Pixels.js +82 -82
  39. package/models/Tier2_Tokens.js +64 -64
  40. package/models/Tier2_UserAdAccounts.js +83 -83
  41. package/models/TokenRotationState.js +121 -121
  42. package/models/TonicRSOCKeywordPerformance.js +122 -122
  43. package/models/Vertical.js +25 -25
  44. package/models/newFiles.js +110 -110
  45. package/package.json +19 -21
  46. package/run.sh +214 -214
  47. package/services/sequelizeService.js +63 -63
package/models/Channel.js CHANGED
@@ -1,55 +1,55 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const Channel = sequelize.define(
3
- "Channel",
4
- {
5
- channelId: {
6
- type: DataTypes.STRING,
7
- allowNull: false,
8
- // Not setting as primary key or unique since duplicates are allowed
9
- },
10
- styleId: {
11
- type: DataTypes.STRING,
12
- allowNull: false,
13
- },
14
- status: {
15
- type: DataTypes.STRING,
16
- allowNull: false,
17
- defaultValue: "free",
18
- validate: {
19
- isIn: [["free", "used", "archived"]],
20
- },
21
- },
22
- connectedCampaigns: {
23
- type: DataTypes.JSONB, // Use JSONB for better querying capabilities
24
- allowNull: false,
25
- defaultValue: [],
26
- },
27
- },
28
- {
29
- tableName: "channels",
30
- timestamps: true,
31
- indexes: [
32
- // Add a composite unique index on channelId and styleId if needed
33
- {
34
- unique: true,
35
- fields: ["channelId", "styleId"],
36
- name: "unique_channel_style",
37
- },
38
- ],
39
- }
40
- );
41
-
42
- // Define associations without enforcing constraints
43
- Channel.associate = (models) => {
44
- if (models.RSOCFeedCampaign) {
45
- Channel.hasMany(models.RSOCFeedCampaign, {
46
- foreignKey: "channelId",
47
- sourceKey: "channelId",
48
- as: "RSOCFeedCampaigns",
49
- constraints: false, // Disable FK constraint
50
- });
51
- }
52
- };
53
-
54
- return Channel;
55
- };
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const Channel = sequelize.define(
3
+ "Channel",
4
+ {
5
+ channelId: {
6
+ type: DataTypes.STRING,
7
+ allowNull: false,
8
+ // Not setting as primary key or unique since duplicates are allowed
9
+ },
10
+ styleId: {
11
+ type: DataTypes.STRING,
12
+ allowNull: false,
13
+ },
14
+ status: {
15
+ type: DataTypes.STRING,
16
+ allowNull: false,
17
+ defaultValue: "free",
18
+ validate: {
19
+ isIn: [["free", "used", "archived"]],
20
+ },
21
+ },
22
+ connectedCampaigns: {
23
+ type: DataTypes.JSONB, // Use JSONB for better querying capabilities
24
+ allowNull: false,
25
+ defaultValue: [],
26
+ },
27
+ },
28
+ {
29
+ tableName: "channels",
30
+ timestamps: true,
31
+ indexes: [
32
+ // Add a composite unique index on channelId and styleId if needed
33
+ {
34
+ unique: true,
35
+ fields: ["channelId", "styleId"],
36
+ name: "unique_channel_style",
37
+ },
38
+ ],
39
+ }
40
+ );
41
+
42
+ // Define associations without enforcing constraints
43
+ Channel.associate = (models) => {
44
+ if (models.RSOCFeedCampaign) {
45
+ Channel.hasMany(models.RSOCFeedCampaign, {
46
+ foreignKey: "channelId",
47
+ sourceKey: "channelId",
48
+ as: "RSOCFeedCampaigns",
49
+ constraints: false, // Disable FK constraint
50
+ });
51
+ }
52
+ };
53
+
54
+ return Channel;
55
+ };
package/models/Domain.js CHANGED
@@ -1,26 +1,26 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const Domain = sequelize.define(
3
- "Domain",
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: "Domain",
22
- }
23
- );
24
-
25
- return Domain;
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const Domain = sequelize.define(
3
+ "Domain",
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: "Domain",
22
+ }
23
+ );
24
+
25
+ return Domain;
26
26
  };
@@ -1,213 +1,213 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const DynamicFeed = sequelize.define(
3
- "DynamicFeed",
4
- {
5
- id: {
6
- type: DataTypes.UUID,
7
- primaryKey: true,
8
- defaultValue: DataTypes.UUIDV4,
9
- },
10
- // Feed Details
11
- feed_type: {
12
- type: DataTypes.ENUM('N2S', 'Type-In', 'AFD', 'RSOC'),
13
- allowNull: true,
14
- },
15
- feed: {
16
- type: DataTypes.ENUM('Direct', 'Partner', '3rd Party'),
17
- allowNull: true,
18
- },
19
- feed_name: {
20
- type: DataTypes.STRING,
21
- allowNull: false,
22
- },
23
- feed_short_name: {
24
- type: DataTypes.STRING,
25
- allowNull: true,
26
- },
27
- feed_logo: {
28
- type: DataTypes.TEXT,
29
- allowNull: true,
30
- },
31
- organization: {
32
- type: DataTypes.STRING,
33
- allowNull: true,
34
- },
35
- traffic_source: {
36
- type: DataTypes.STRING,
37
- allowNull: true,
38
- },
39
-
40
- // Targeting Rules
41
- accepted_devices: {
42
- type: DataTypes.JSONB,
43
- allowNull: true,
44
- },
45
- search_engine: {
46
- type: DataTypes.JSONB,
47
- allowNull: true,
48
- },
49
- country: {
50
- type: DataTypes.STRING,
51
- allowNull: true,
52
- },
53
- country_groups: {
54
- type: DataTypes.JSONB,
55
- allowNull: true,
56
- },
57
-
58
- // Tracking & URL Parameters
59
- default_pixel: {
60
- type: DataTypes.ARRAY(DataTypes.STRING),
61
- allowNull: true,
62
- defaultValue: [],
63
- },
64
- default_pixel_event: {
65
- type: DataTypes.ARRAY(DataTypes.STRING),
66
- allowNull: true,
67
- defaultValue: [],
68
- },
69
- base_url: {
70
- type: DataTypes.STRING(500),
71
- allowNull: true,
72
- },
73
- display_url: {
74
- type: DataTypes.STRING(500),
75
- allowNull: true,
76
- },
77
- path_url_structure: {
78
- type: DataTypes.STRING(500),
79
- allowNull: true,
80
- },
81
- reporting_parameter: {
82
- type: DataTypes.STRING(100),
83
- allowNull: true,
84
- },
85
- keyword_parameter: {
86
- type: DataTypes.STRING(100),
87
- allowNull: true,
88
- },
89
- special_static_params: {
90
- type: DataTypes.TEXT,
91
- allowNull: true,
92
- },
93
-
94
- // Facebook Settings
95
- optimization_goal: {
96
- type: DataTypes.STRING,
97
- allowNull: true,
98
- },
99
- bid_strategy: {
100
- type: DataTypes.STRING,
101
- allowNull: true,
102
- },
103
-
104
- // Feed Provider Settings
105
- feed_provider: {
106
- type: DataTypes.STRING,
107
- allowNull: true,
108
- },
109
- reporting_frequency: {
110
- type: DataTypes.STRING,
111
- allowNull: true,
112
- },
113
- feed_username: {
114
- type: DataTypes.STRING,
115
- allowNull: true,
116
- },
117
- feed_password: {
118
- type: DataTypes.STRING,
119
- allowNull: true,
120
- },
121
- access_token: {
122
- type: DataTypes.TEXT,
123
- allowNull: true,
124
- },
125
- api_base_url: {
126
- type: DataTypes.STRING,
127
- allowNull: true,
128
- },
129
- token_expires_at: {
130
- type: DataTypes.DATE,
131
- allowNull: true,
132
- },
133
-
134
- // Reporting Configuration
135
- revenue_source: {
136
- type: DataTypes.STRING,
137
- allowNull: true,
138
- },
139
- reporting_granularity: {
140
- type: DataTypes.STRING,
141
- allowNull: true,
142
- },
143
- reporting_group_by: {
144
- type: DataTypes.STRING,
145
- allowNull: true,
146
- },
147
- reporting_metrics_map: {
148
- type: DataTypes.JSONB,
149
- allowNull: true,
150
- },
151
- reporting_channel_field: {
152
- type: DataTypes.STRING,
153
- allowNull: true,
154
- },
155
-
156
- // Generated URLs
157
- generated_url: {
158
- type: DataTypes.STRING,
159
- allowNull: true,
160
- },
161
- token: {
162
- type: DataTypes.STRING,
163
- allowNull: true,
164
- unique: true,
165
- },
166
-
167
- // Status
168
- is_active: {
169
- type: DataTypes.BOOLEAN,
170
- defaultValue: true,
171
- allowNull: true,
172
- },
173
- is_dynamic_feed: {
174
- type: DataTypes.BOOLEAN,
175
- defaultValue: true,
176
- allowNull: true,
177
- },
178
- },
179
- {
180
- tableName: "dynamic_feeds",
181
- timestamps: true,
182
- indexes: [
183
- {
184
- fields: ["token"],
185
- },
186
- {
187
- fields: ["generated_url"],
188
- },
189
- {
190
- fields: ["is_active"],
191
- },
192
- {
193
- fields: ["feed_type"],
194
- },
195
- {
196
- fields: ["country"],
197
- },
198
- {
199
- fields: ["feed_provider"],
200
- },
201
- {
202
- fields: ["is_dynamic_feed"],
203
- },
204
- ],
205
- }
206
- );
207
-
208
- DynamicFeed.associate = (models) => {
209
- // Add associations here when needed
210
- };
211
-
212
- return DynamicFeed;
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const DynamicFeed = sequelize.define(
3
+ "DynamicFeed",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID,
7
+ primaryKey: true,
8
+ defaultValue: DataTypes.UUIDV4,
9
+ },
10
+ // Feed Details
11
+ feed_type: {
12
+ type: DataTypes.ENUM('N2S', 'Type-In', 'AFD', 'RSOC'),
13
+ allowNull: true,
14
+ },
15
+ feed: {
16
+ type: DataTypes.ENUM('Direct', 'Partner', '3rd Party'),
17
+ allowNull: true,
18
+ },
19
+ feed_name: {
20
+ type: DataTypes.STRING,
21
+ allowNull: false,
22
+ },
23
+ feed_short_name: {
24
+ type: DataTypes.STRING,
25
+ allowNull: true,
26
+ },
27
+ feed_logo: {
28
+ type: DataTypes.TEXT,
29
+ allowNull: true,
30
+ },
31
+ organization: {
32
+ type: DataTypes.STRING,
33
+ allowNull: true,
34
+ },
35
+ traffic_source: {
36
+ type: DataTypes.STRING,
37
+ allowNull: true,
38
+ },
39
+
40
+ // Targeting Rules
41
+ accepted_devices: {
42
+ type: DataTypes.JSONB,
43
+ allowNull: true,
44
+ },
45
+ search_engine: {
46
+ type: DataTypes.JSONB,
47
+ allowNull: true,
48
+ },
49
+ country: {
50
+ type: DataTypes.STRING,
51
+ allowNull: true,
52
+ },
53
+ country_groups: {
54
+ type: DataTypes.JSONB,
55
+ allowNull: true,
56
+ },
57
+
58
+ // Tracking & URL Parameters
59
+ default_pixel: {
60
+ type: DataTypes.ARRAY(DataTypes.STRING),
61
+ allowNull: true,
62
+ defaultValue: [],
63
+ },
64
+ default_pixel_event: {
65
+ type: DataTypes.ARRAY(DataTypes.STRING),
66
+ allowNull: true,
67
+ defaultValue: [],
68
+ },
69
+ base_url: {
70
+ type: DataTypes.STRING(500),
71
+ allowNull: true,
72
+ },
73
+ display_url: {
74
+ type: DataTypes.STRING(500),
75
+ allowNull: true,
76
+ },
77
+ path_url_structure: {
78
+ type: DataTypes.STRING(500),
79
+ allowNull: true,
80
+ },
81
+ reporting_parameter: {
82
+ type: DataTypes.STRING(100),
83
+ allowNull: true,
84
+ },
85
+ keyword_parameter: {
86
+ type: DataTypes.STRING(100),
87
+ allowNull: true,
88
+ },
89
+ special_static_params: {
90
+ type: DataTypes.TEXT,
91
+ allowNull: true,
92
+ },
93
+
94
+ // Facebook Settings
95
+ optimization_goal: {
96
+ type: DataTypes.STRING,
97
+ allowNull: true,
98
+ },
99
+ bid_strategy: {
100
+ type: DataTypes.STRING,
101
+ allowNull: true,
102
+ },
103
+
104
+ // Feed Provider Settings
105
+ feed_provider: {
106
+ type: DataTypes.STRING,
107
+ allowNull: true,
108
+ },
109
+ reporting_frequency: {
110
+ type: DataTypes.STRING,
111
+ allowNull: true,
112
+ },
113
+ feed_username: {
114
+ type: DataTypes.STRING,
115
+ allowNull: true,
116
+ },
117
+ feed_password: {
118
+ type: DataTypes.STRING,
119
+ allowNull: true,
120
+ },
121
+ access_token: {
122
+ type: DataTypes.TEXT,
123
+ allowNull: true,
124
+ },
125
+ api_base_url: {
126
+ type: DataTypes.STRING,
127
+ allowNull: true,
128
+ },
129
+ token_expires_at: {
130
+ type: DataTypes.DATE,
131
+ allowNull: true,
132
+ },
133
+
134
+ // Reporting Configuration
135
+ revenue_source: {
136
+ type: DataTypes.STRING,
137
+ allowNull: true,
138
+ },
139
+ reporting_granularity: {
140
+ type: DataTypes.STRING,
141
+ allowNull: true,
142
+ },
143
+ reporting_group_by: {
144
+ type: DataTypes.STRING,
145
+ allowNull: true,
146
+ },
147
+ reporting_metrics_map: {
148
+ type: DataTypes.JSONB,
149
+ allowNull: true,
150
+ },
151
+ reporting_channel_field: {
152
+ type: DataTypes.STRING,
153
+ allowNull: true,
154
+ },
155
+
156
+ // Generated URLs
157
+ generated_url: {
158
+ type: DataTypes.STRING,
159
+ allowNull: true,
160
+ },
161
+ token: {
162
+ type: DataTypes.STRING,
163
+ allowNull: true,
164
+ unique: true,
165
+ },
166
+
167
+ // Status
168
+ is_active: {
169
+ type: DataTypes.BOOLEAN,
170
+ defaultValue: true,
171
+ allowNull: true,
172
+ },
173
+ is_dynamic_feed: {
174
+ type: DataTypes.BOOLEAN,
175
+ defaultValue: true,
176
+ allowNull: true,
177
+ },
178
+ },
179
+ {
180
+ tableName: "dynamic_feeds",
181
+ timestamps: true,
182
+ indexes: [
183
+ {
184
+ fields: ["token"],
185
+ },
186
+ {
187
+ fields: ["generated_url"],
188
+ },
189
+ {
190
+ fields: ["is_active"],
191
+ },
192
+ {
193
+ fields: ["feed_type"],
194
+ },
195
+ {
196
+ fields: ["country"],
197
+ },
198
+ {
199
+ fields: ["feed_provider"],
200
+ },
201
+ {
202
+ fields: ["is_dynamic_feed"],
203
+ },
204
+ ],
205
+ }
206
+ );
207
+
208
+ DynamicFeed.associate = (models) => {
209
+ // Add associations here when needed
210
+ };
211
+
212
+ return DynamicFeed;
213
213
  };