agrs-sequelize-sdk 1.3.81 → 1.3.83

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 (64) hide show
  1. package/migrations/add-requested-from-dashboard-to-articles.js +17 -17
  2. package/migrations/change-adset-name-to-text.js +79 -79
  3. package/models/AICampaignQueue.js +136 -136
  4. package/models/AIGenerationLog.js +85 -85
  5. package/models/AIGenerationRequest.js +212 -212
  6. package/models/AdAccountValues.js +25 -25
  7. package/models/AdHistory.js +30 -30
  8. package/models/AdPerformance.js +94 -94
  9. package/models/AdSet.js +289 -289
  10. package/models/AdSetHistory.js +30 -30
  11. package/models/AdsetPerformance.js +126 -126
  12. package/models/AiArticleRetryQueue.js +150 -150
  13. package/models/Article.js +196 -196
  14. package/models/AutomationRule.js +173 -173
  15. package/models/BannerTemplate.js +129 -129
  16. package/models/Buyers.js +25 -25
  17. package/models/Campaign.js +157 -157
  18. package/models/CampaignActionHistory.js +86 -86
  19. package/models/CampaignCreationLog.js +309 -309
  20. package/models/CampaignCreationLogV2.js +314 -314
  21. package/models/CampaignHistory.js +33 -33
  22. package/models/Channel.js +55 -55
  23. package/models/Domain.js +35 -35
  24. package/models/DynamicFeed.js +212 -212
  25. package/models/ExplorAdsChannel.js +61 -61
  26. package/models/FacebookRetryQueue.js +156 -0
  27. package/models/Feed.js +33 -33
  28. package/models/FeedArticleConfiguration.js +80 -80
  29. package/models/FrontStoryChannel.js +59 -59
  30. package/models/FrontStoryChannelV2.js +60 -60
  31. package/models/GenericFlowRequest.js +114 -114
  32. package/models/MidoWebChannel.js +47 -47
  33. package/models/MineChannel.js +42 -42
  34. package/models/Pages.js +92 -92
  35. package/models/PipelineExecution.js +59 -59
  36. package/models/PolicyDogsCreativeCache.js +50 -50
  37. package/models/PolicyDogsImageCache.js +30 -30
  38. package/models/Presets.js +34 -34
  39. package/models/RSOCFeedCampaign.js +375 -375
  40. package/models/RsocKeywordPerformance.js +110 -110
  41. package/models/RuleAction.js +90 -90
  42. package/models/RuleCondition.js +137 -137
  43. package/models/RuleExecution.js +107 -107
  44. package/models/RulesValues.js +56 -56
  45. package/models/SupportedLocale.js +23 -23
  46. package/models/SyncHistory.js +249 -249
  47. package/models/TTQChannel.js +42 -42
  48. package/models/TemplateMetadata.js +260 -260
  49. package/models/Tier2_AdAccounts.js +110 -110
  50. package/models/Tier2_Assets.js +70 -70
  51. package/models/Tier2_BusinessManagers.js +105 -105
  52. package/models/Tier2_CreditLines.js +99 -99
  53. package/models/Tier2_Pages.js +91 -91
  54. package/models/Tier2_Pixels.js +82 -82
  55. package/models/Tier2_Tokens.js +64 -64
  56. package/models/Tier2_UserAdAccounts.js +83 -83
  57. package/models/TokenRotationState.js +121 -121
  58. package/models/TonicRSOCKeywordPerformance.js +122 -122
  59. package/models/Users.js +143 -138
  60. package/models/Vertical.js +25 -25
  61. package/models/newFiles.js +137 -137
  62. package/package.json +19 -21
  63. package/run.sh +214 -214
  64. package/services/sequelizeService.js +110 -110
package/models/Users.js CHANGED
@@ -1,138 +1,143 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const Users = sequelize.define(
3
- "Users",
4
- {
5
- id: {
6
- type: DataTypes.UUID, // Use UUID for the primary key
7
- defaultValue: DataTypes.UUIDV4, // Automatically generate a UUID
8
- primaryKey: true, // Set as primary key
9
- },
10
- Username: {
11
- type: DataTypes.STRING,
12
- allowNull: false,
13
- unique: true,
14
- },
15
- Image: {
16
- type: DataTypes.STRING,
17
- allowNull: true,
18
- },
19
- Email: {
20
- type: DataTypes.STRING,
21
- allowNull: true,
22
- unique: true,
23
- },
24
- // add name field
25
- Name: {
26
- type: DataTypes.STRING,
27
- allowNull: false,
28
- },
29
- Password: {
30
- type: DataTypes.STRING(1024), // Store hash with max length 256
31
- allowNull: false,
32
- },
33
- Roles: {
34
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of roles
35
- allowNull: true,
36
- defaultValue: [],
37
- },
38
- Features: {
39
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of features
40
- allowNull: true,
41
- defaultValue: [],
42
- },
43
- Accounts: {
44
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
45
- allowNull: true,
46
- defaultValue: [],
47
- },
48
- MediaBuyers: {
49
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
50
- allowNull: true,
51
- defaultValue: [],
52
- },
53
- Pages: {
54
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
55
- allowNull: true,
56
- defaultValue: [],
57
- },
58
- FeedProvider: {
59
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of static feed names (predicto, mine, etc.)
60
- allowNull: true,
61
- defaultValue: [],
62
- },
63
- DynamicFeedIds: {
64
- type: DataTypes.ARRAY(DataTypes.UUID), // Array of UUIDs referencing dynamic_feeds.id
65
- allowNull: true,
66
- defaultValue: [],
67
- },
68
- Organization: {
69
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of organization IDs
70
- allowNull: true,
71
- defaultValue: [],
72
- },
73
- Tier2Accounts: {
74
- type: DataTypes.ARRAY(DataTypes.STRING), // Array of Tier2 Ad Account Facebook IDs
75
- allowNull: true,
76
- defaultValue: [],
77
- },
78
- AccountsEdit: {
79
- type: DataTypes.ARRAY(DataTypes.STRING),
80
- allowNull: true,
81
- defaultValue: [],
82
- },
83
- AccountsAI: {
84
- type: DataTypes.ARRAY(DataTypes.STRING),
85
- allowNull: true,
86
- defaultValue: [],
87
- },
88
- LastEntrance: {
89
- type: DataTypes.DATE, // Array of organization IDs
90
- allowNull: true,
91
- defaultValue: [],
92
- },
93
- Status: {
94
- type: DataTypes.STRING, // Array of organization IDs
95
- allowNull: true,
96
- },
97
- access_all_files: {
98
- type: DataTypes.BOOLEAN,
99
- allowNull: true,
100
- },
101
- Domains: {
102
- type: DataTypes.JSONB,
103
- allowNull: true
104
- },
105
- managed_by: {
106
- type: DataTypes.UUID, // A UUID to store the ID of the user who manages this user
107
- allowNull: true,
108
- references: {
109
- model: "Users",
110
- key: "id",
111
- },
112
- },
113
- },
114
- {
115
- tableName: "Users",
116
- }
117
- );
118
-
119
- // Define associations for managed_by relationship
120
- Users.associate = (models) => {
121
- // A user can manage many users
122
- Users.hasMany(models.Users, {
123
- foreignKey: "managed_by",
124
- as: "managedUsers",
125
- });
126
-
127
- // A user can only be managed by one user
128
- Users.belongsTo(models.Users, {
129
- foreignKey: "managed_by",
130
- as: "manager",
131
- });
132
-
133
- // A user can have many presets
134
- Users.hasMany(models.Presets, { foreignKey: "userId", as: "presets" });
135
- };
136
-
137
- return Users;
138
- };
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const Users = sequelize.define(
3
+ "Users",
4
+ {
5
+ id: {
6
+ type: DataTypes.UUID, // Use UUID for the primary key
7
+ defaultValue: DataTypes.UUIDV4, // Automatically generate a UUID
8
+ primaryKey: true, // Set as primary key
9
+ },
10
+ Username: {
11
+ type: DataTypes.STRING,
12
+ allowNull: false,
13
+ unique: true,
14
+ },
15
+ Image: {
16
+ type: DataTypes.STRING,
17
+ allowNull: true,
18
+ },
19
+ Email: {
20
+ type: DataTypes.STRING,
21
+ allowNull: true,
22
+ unique: true,
23
+ },
24
+ // add name field
25
+ Name: {
26
+ type: DataTypes.STRING,
27
+ allowNull: false,
28
+ },
29
+ Password: {
30
+ type: DataTypes.STRING(1024), // Store hash with max length 256
31
+ allowNull: false,
32
+ },
33
+ Roles: {
34
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of roles
35
+ allowNull: true,
36
+ defaultValue: [],
37
+ },
38
+ Features: {
39
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of features
40
+ allowNull: true,
41
+ defaultValue: [],
42
+ },
43
+ Accounts: {
44
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
45
+ allowNull: true,
46
+ defaultValue: [],
47
+ },
48
+ MediaBuyers: {
49
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
50
+ allowNull: true,
51
+ defaultValue: [],
52
+ },
53
+ Pages: {
54
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of account IDs
55
+ allowNull: true,
56
+ defaultValue: [],
57
+ },
58
+ FeedProvider: {
59
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of static feed names (predicto, mine, etc.)
60
+ allowNull: true,
61
+ defaultValue: [],
62
+ },
63
+ DynamicFeedIds: {
64
+ type: DataTypes.ARRAY(DataTypes.UUID), // Array of UUIDs referencing dynamic_feeds.id
65
+ allowNull: true,
66
+ defaultValue: [],
67
+ },
68
+ Organization: {
69
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of organization IDs
70
+ allowNull: true,
71
+ defaultValue: [],
72
+ },
73
+ Tier2Accounts: {
74
+ type: DataTypes.ARRAY(DataTypes.STRING), // Array of Tier2 Ad Account Facebook IDs
75
+ allowNull: true,
76
+ defaultValue: [],
77
+ },
78
+ AccountsView: {
79
+ type: DataTypes.ARRAY(DataTypes.STRING),
80
+ allowNull: true,
81
+ defaultValue: [],
82
+ },
83
+ AccountsEdit: {
84
+ type: DataTypes.ARRAY(DataTypes.STRING),
85
+ allowNull: true,
86
+ defaultValue: [],
87
+ },
88
+ AccountsAI: {
89
+ type: DataTypes.ARRAY(DataTypes.STRING),
90
+ allowNull: true,
91
+ defaultValue: [],
92
+ },
93
+ LastEntrance: {
94
+ type: DataTypes.DATE, // Array of organization IDs
95
+ allowNull: true,
96
+ defaultValue: [],
97
+ },
98
+ Status: {
99
+ type: DataTypes.STRING, // Array of organization IDs
100
+ allowNull: true,
101
+ },
102
+ access_all_files: {
103
+ type: DataTypes.BOOLEAN,
104
+ allowNull: true,
105
+ },
106
+ Domains: {
107
+ type: DataTypes.JSONB,
108
+ allowNull: true
109
+ },
110
+ managed_by: {
111
+ type: DataTypes.UUID, // A UUID to store the ID of the user who manages this user
112
+ allowNull: true,
113
+ references: {
114
+ model: "Users",
115
+ key: "id",
116
+ },
117
+ },
118
+ },
119
+ {
120
+ tableName: "Users",
121
+ }
122
+ );
123
+
124
+ // Define associations for managed_by relationship
125
+ Users.associate = (models) => {
126
+ // A user can manage many users
127
+ Users.hasMany(models.Users, {
128
+ foreignKey: "managed_by",
129
+ as: "managedUsers",
130
+ });
131
+
132
+ // A user can only be managed by one user
133
+ Users.belongsTo(models.Users, {
134
+ foreignKey: "managed_by",
135
+ as: "manager",
136
+ });
137
+
138
+ // A user can have many presets
139
+ Users.hasMany(models.Presets, { foreignKey: "userId", as: "presets" });
140
+ };
141
+
142
+ return Users;
143
+ };
@@ -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
  };
@@ -1,137 +1,137 @@
1
- module.exports = (sequelize, DataTypes) => {
2
- const NewFiles = sequelize.define("NewFiles", {
3
- id: {
4
- type: DataTypes.STRING,
5
- primaryKey: true,
6
- },
7
- accounts: {
8
- type: DataTypes.JSONB(),
9
- allowNull: true,
10
- },
11
- name: {
12
- type: DataTypes.STRING,
13
- allowNull: false,
14
- },
15
- // need to add a field of the name in the gcp bucket
16
- gcpFileName: {
17
- type: DataTypes.STRING,
18
- allowNull: true,
19
- },
20
- type: {
21
- type: DataTypes.STRING, // Can be "image" or "video"
22
- allowNull: false,
23
- },
24
- URL: {
25
- type: DataTypes.STRING, // URL for the file
26
- allowNull: false,
27
- },
28
- FileType: {
29
- type: DataTypes.STRING,
30
- allowNull: true,
31
- defaultValue: "image",
32
- },
33
- Size: {
34
- type: DataTypes.STRING,
35
- allowNull: true,
36
- },
37
- Language: {
38
- type: DataTypes.STRING,
39
- allowNull: true,
40
- },
41
- Vertical: {
42
- type: DataTypes.STRING,
43
- allowNull: true,
44
- },
45
- // want to add length ( duration of the video) if the file is a video.
46
- // maybe call it duration
47
- Duration: {
48
- type: DataTypes.STRING,
49
- allowNull: true,
50
- },
51
- // Thumbnail URL
52
- Thumbnail: {
53
- type: DataTypes.TEXT,
54
- allowNull: true,
55
- },
56
- Thumbnai2: {
57
- type: DataTypes.TEXT,
58
- allowNull: true,
59
- },
60
- // ImageHash
61
- ImageHash: {
62
- type: DataTypes.STRING,
63
- allowNull: true,
64
- },
65
- isGenerated: {
66
- type: DataTypes.BOOLEAN,
67
- allowNull: true,
68
- defaultValue: false,
69
- },
70
- isUploading: {
71
- type: DataTypes.BOOLEAN,
72
- allowNull: true,
73
- defaultValue: false,
74
- },
75
- freeText: {
76
- type: DataTypes.STRING,
77
- allowNull: true,
78
- },
79
- style: {
80
- type: DataTypes.STRING,
81
- allowNull: true,
82
- },
83
- ratio: {
84
- type: DataTypes.STRING,
85
- allowNull: true,
86
- },
87
- notes: {
88
- type: DataTypes.STRING(1000),
89
- allowNull: true,
90
- },
91
- headline: {
92
- type: DataTypes.STRING(1000),
93
- allowNull: true,
94
- },
95
- subtext: {
96
- type: DataTypes.STRING(1000),
97
- allowNull: true,
98
- },
99
- cta: {
100
- type: DataTypes.STRING(1000),
101
- allowNull: true,
102
- },
103
- script: {
104
- type: DataTypes.STRING(1000),
105
- allowNull: true,
106
- },
107
- extractedText: {
108
- type: DataTypes.TEXT,
109
- allowNull: true,
110
- comment: 'Text extracted from image/video using Gemini Vision API',
111
- },
112
- // AI Generation Settings - stores all generation parameters for AI-generated files
113
- generationSettings: {
114
- type: DataTypes.JSONB,
115
- allowNull: true,
116
- comment: 'Generation settings from AdvancedCreativeGenerator (style, colors, layout, etc.)',
117
- },
118
- // AI Generation Request ID - link to AIGenerationRequest table
119
- generationRequestId: {
120
- type: DataTypes.STRING,
121
- allowNull: true,
122
- comment: 'Request ID from AIGenerationRequest table if this file was AI-generated',
123
- },
124
- });
125
-
126
- // ✅ Associations
127
- NewFiles.associate = function (models) {
128
- // File belongs to a generation request
129
- NewFiles.belongsTo(models.AIGenerationRequest, {
130
- foreignKey: "generationRequestId",
131
- targetKey: "requestId",
132
- as: "generationRequest",
133
- });
134
- };
135
-
136
- return NewFiles;
137
- };
1
+ module.exports = (sequelize, DataTypes) => {
2
+ const NewFiles = sequelize.define("NewFiles", {
3
+ id: {
4
+ type: DataTypes.STRING,
5
+ primaryKey: true,
6
+ },
7
+ accounts: {
8
+ type: DataTypes.JSONB(),
9
+ allowNull: true,
10
+ },
11
+ name: {
12
+ type: DataTypes.STRING,
13
+ allowNull: false,
14
+ },
15
+ // need to add a field of the name in the gcp bucket
16
+ gcpFileName: {
17
+ type: DataTypes.STRING,
18
+ allowNull: true,
19
+ },
20
+ type: {
21
+ type: DataTypes.STRING, // Can be "image" or "video"
22
+ allowNull: false,
23
+ },
24
+ URL: {
25
+ type: DataTypes.STRING, // URL for the file
26
+ allowNull: false,
27
+ },
28
+ FileType: {
29
+ type: DataTypes.STRING,
30
+ allowNull: true,
31
+ defaultValue: "image",
32
+ },
33
+ Size: {
34
+ type: DataTypes.STRING,
35
+ allowNull: true,
36
+ },
37
+ Language: {
38
+ type: DataTypes.STRING,
39
+ allowNull: true,
40
+ },
41
+ Vertical: {
42
+ type: DataTypes.STRING,
43
+ allowNull: true,
44
+ },
45
+ // want to add length ( duration of the video) if the file is a video.
46
+ // maybe call it duration
47
+ Duration: {
48
+ type: DataTypes.STRING,
49
+ allowNull: true,
50
+ },
51
+ // Thumbnail URL
52
+ Thumbnail: {
53
+ type: DataTypes.TEXT,
54
+ allowNull: true,
55
+ },
56
+ Thumbnai2: {
57
+ type: DataTypes.TEXT,
58
+ allowNull: true,
59
+ },
60
+ // ImageHash
61
+ ImageHash: {
62
+ type: DataTypes.STRING,
63
+ allowNull: true,
64
+ },
65
+ isGenerated: {
66
+ type: DataTypes.BOOLEAN,
67
+ allowNull: true,
68
+ defaultValue: false,
69
+ },
70
+ isUploading: {
71
+ type: DataTypes.BOOLEAN,
72
+ allowNull: true,
73
+ defaultValue: false,
74
+ },
75
+ freeText: {
76
+ type: DataTypes.STRING,
77
+ allowNull: true,
78
+ },
79
+ style: {
80
+ type: DataTypes.STRING,
81
+ allowNull: true,
82
+ },
83
+ ratio: {
84
+ type: DataTypes.STRING,
85
+ allowNull: true,
86
+ },
87
+ notes: {
88
+ type: DataTypes.STRING(1000),
89
+ allowNull: true,
90
+ },
91
+ headline: {
92
+ type: DataTypes.STRING(1000),
93
+ allowNull: true,
94
+ },
95
+ subtext: {
96
+ type: DataTypes.STRING(1000),
97
+ allowNull: true,
98
+ },
99
+ cta: {
100
+ type: DataTypes.STRING(1000),
101
+ allowNull: true,
102
+ },
103
+ script: {
104
+ type: DataTypes.STRING(1000),
105
+ allowNull: true,
106
+ },
107
+ extractedText: {
108
+ type: DataTypes.TEXT,
109
+ allowNull: true,
110
+ comment: 'Text extracted from image/video using Gemini Vision API',
111
+ },
112
+ // AI Generation Settings - stores all generation parameters for AI-generated files
113
+ generationSettings: {
114
+ type: DataTypes.JSONB,
115
+ allowNull: true,
116
+ comment: 'Generation settings from AdvancedCreativeGenerator (style, colors, layout, etc.)',
117
+ },
118
+ // AI Generation Request ID - link to AIGenerationRequest table
119
+ generationRequestId: {
120
+ type: DataTypes.STRING,
121
+ allowNull: true,
122
+ comment: 'Request ID from AIGenerationRequest table if this file was AI-generated',
123
+ },
124
+ });
125
+
126
+ // ✅ Associations
127
+ NewFiles.associate = function (models) {
128
+ // File belongs to a generation request
129
+ NewFiles.belongsTo(models.AIGenerationRequest, {
130
+ foreignKey: "generationRequestId",
131
+ targetKey: "requestId",
132
+ as: "generationRequest",
133
+ });
134
+ };
135
+
136
+ return NewFiles;
137
+ };
package/package.json CHANGED
@@ -1,21 +1,19 @@
1
- {
2
- "name": "agrs-sequelize-sdk",
3
- "version": "1.3.81",
4
- "main": "index.js",
5
- "scripts": {
6
- "start": "node index.js",
7
- "sync": "node services/sequelizeService.js",
8
- "test": "echo \"Error: no test specified\" \u0026\u0026 exit 1"
9
- },
10
- "keywords": [
11
-
12
- ],
13
- "author": "",
14
- "license": "ISC",
15
- "description": "",
16
- "dependencies": {
17
- "pg": "^8.13.0",
18
- "pg-hstore": "^2.3.4",
19
- "sequelize": "^6.37.4"
20
- }
21
- }
1
+ {
2
+ "name": "agrs-sequelize-sdk",
3
+ "version": "1.3.83",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "start": "node index.js",
7
+ "sync": "node services/sequelizeService.js",
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "description": "",
14
+ "dependencies": {
15
+ "pg": "^8.13.0",
16
+ "pg-hstore": "^2.3.4",
17
+ "sequelize": "^6.37.4"
18
+ }
19
+ }