agrs-sequelize-sdk 1.4.51 → 1.4.53

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 (1353) hide show
  1. package/migrations/2026-05-17-PIXELS-FOLLOWUP.md +85 -85
  2. package/migrations/2026-05-17-add-platform-to-ad.js +19 -19
  3. package/migrations/2026-05-17-add-platform-to-adaccount.js +19 -19
  4. package/migrations/2026-05-17-add-platform-to-adperformance.js +19 -19
  5. package/migrations/2026-05-17-add-platform-to-adset.js +19 -19
  6. package/migrations/2026-05-17-add-platform-to-adsetperformance.js +19 -19
  7. package/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +19 -19
  8. package/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +19 -19
  9. package/migrations/2026-05-17-add-platform-to-article.js +19 -19
  10. package/migrations/2026-05-17-add-platform-to-campaign.js +19 -19
  11. package/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +19 -19
  12. package/migrations/2026-05-17-add-platform-to-dynamicfeed.js +19 -19
  13. package/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +19 -19
  14. package/migrations/2026-05-17-add-platform-to-pages.js +19 -19
  15. package/migrations/2026-05-17-add-platform-to-presets.js +19 -19
  16. package/migrations/2026-05-18-add-group-id-to-ai-campaign-queue.js +18 -18
  17. package/migrations/2026-05-18-add-platform-code-to-creation-logs.js +65 -65
  18. package/migrations/2026-05-18-add-platform-code-to-pixels.js +55 -55
  19. package/migrations/2026-05-18-add-platform-code-to-rsoc-feed-campaigns.js +55 -55
  20. package/migrations/2026-05-18-add-platform-date-index-to-adperformance.js +16 -16
  21. package/migrations/2026-05-18-add-platform-date-index-to-adsetperformance.js +16 -16
  22. package/migrations/2026-05-18-add-review-status-to-ad.js +36 -36
  23. package/migrations/2026-05-18-create-canonical-insights.js +84 -84
  24. package/migrations/2026-05-18-create-snapchat-public-profiles.js +68 -68
  25. package/migrations/2026-05-18-create-tiktok-identities.js +71 -71
  26. package/migrations/2026-05-18-create-tiktok-snapchat-campaigns.js +143 -143
  27. package/migrations/2026-05-18-create-tt-snp-adset-ad-tables.js +309 -309
  28. package/migrations/RUN_ME_MANUALLY_2026-05-17.sql +99 -99
  29. package/migrations/add-requested-from-dashboard-to-articles.js +17 -17
  30. package/migrations/change-adset-name-to-text.js +79 -79
  31. package/models/AICampaignQueue.js +152 -152
  32. package/models/AIGenerationLog.js +85 -85
  33. package/models/AIGenerationRequest.js +212 -212
  34. package/models/AdAccountValues.js +25 -25
  35. package/models/AdHistory.js +30 -30
  36. package/models/AdPerformance.js +104 -104
  37. package/models/AdSet.js +295 -295
  38. package/models/AdSetHistory.js +30 -30
  39. package/models/AdsetPerformance.js +137 -137
  40. package/models/AiArticleRetryQueue.js +157 -157
  41. package/models/AiCreationRetryQueue.js +134 -134
  42. package/models/ApiAuditLog.js +127 -127
  43. package/models/ApiToken.js +67 -67
  44. package/models/Article.js +222 -222
  45. package/models/AutomationRule.js +179 -179
  46. package/models/BannerTemplate.js +129 -129
  47. package/models/Buyers.js +25 -25
  48. package/models/Campaign.js +168 -163
  49. package/models/CampaignActionHistory.js +101 -86
  50. package/models/CampaignCreationLog.js +340 -340
  51. package/models/CampaignCreationLogV2.js +392 -392
  52. package/models/CampaignHistory.js +33 -33
  53. package/models/CampaignTag.js +46 -0
  54. package/models/CampaignTagAssignment.js +48 -0
  55. package/models/CanonicalInsights.js +68 -68
  56. package/models/Channel.js +55 -55
  57. package/models/Domain.js +44 -44
  58. package/models/DynamicFeed.js +218 -218
  59. package/models/ExplorAdsChannel.js +61 -61
  60. package/models/FacebookRetryQueue.js +163 -163
  61. package/models/Feed.js +33 -33
  62. package/models/FeedArticleConfiguration.js +80 -80
  63. package/models/FrontStoryChannel.js +59 -59
  64. package/models/FrontStoryChannelV2.js +60 -60
  65. package/models/GenericFlowRequest.js +114 -114
  66. package/models/MidoWebChannel.js +47 -47
  67. package/models/MineBrandBlocklist.js +40 -40
  68. package/models/MineChannel.js +42 -42
  69. package/models/MineRedirectDomain.js +36 -36
  70. package/models/MineWebhookEvent.js +53 -53
  71. package/models/Pages.js +117 -117
  72. package/models/PipelineExecution.js +59 -59
  73. package/models/PolicyDogsCreativeCache.js +50 -50
  74. package/models/PolicyDogsImageCache.js +30 -30
  75. package/models/Presets.js +40 -40
  76. package/models/PublicApiBatch.js +155 -155
  77. package/models/PublicApiBatchItem.js +166 -166
  78. package/models/PublicApiIdempotencyCache.js +135 -135
  79. package/models/RSOCFeedCampaign.js +387 -387
  80. package/models/RsocKeywordPerformance.js +110 -110
  81. package/models/RuleAction.js +90 -90
  82. package/models/RuleCondition.js +137 -137
  83. package/models/RuleExecution.js +107 -107
  84. package/models/RulesValues.js +56 -56
  85. package/models/SingularChannel.js +31 -31
  86. package/models/SnapchatAd.js +69 -69
  87. package/models/SnapchatAdSquad.js +92 -92
  88. package/models/SnapchatCampaign.js +69 -69
  89. package/models/SnapchatChannel.js +31 -31
  90. package/models/SnapchatPublicProfiles.js +67 -67
  91. package/models/SupportedLocale.js +23 -23
  92. package/models/SyncHistory.js +249 -249
  93. package/models/TTQChannel.js +42 -42
  94. package/models/TemplateMetadata.js +260 -260
  95. package/models/Tier2_AdAccounts.js +110 -110
  96. package/models/Tier2_Assets.js +70 -70
  97. package/models/Tier2_BusinessManagers.js +105 -105
  98. package/models/Tier2_CreditLines.js +99 -99
  99. package/models/Tier2_Pages.js +91 -91
  100. package/models/Tier2_Pixels.js +82 -82
  101. package/models/Tier2_Tokens.js +64 -64
  102. package/models/Tier2_UserAdAccounts.js +83 -83
  103. package/models/TikTokAd.js +71 -71
  104. package/models/TikTokAdGroup.js +82 -82
  105. package/models/TikTokCampaign.js +71 -71
  106. package/models/TiktokChannel.js +31 -31
  107. package/models/TiktokIdentities.js +65 -65
  108. package/models/TokenRotationState.js +121 -121
  109. package/models/TonicRSOCKeywordPerformance.js +122 -122
  110. package/models/Users.js +190 -185
  111. package/models/Vertical.js +25 -25
  112. package/models/newFiles.js +137 -137
  113. package/package.json +21 -19
  114. package/run.sh +214 -214
  115. package/services/sequelizeService.js +110 -110
  116. package/tarzo-skalio-integration-docs.md +691 -691
  117. package/.impeccable/hook.cache.json +0 -1
  118. package/.worktrees/ad-review-status/LICENSE +0 -21
  119. package/.worktrees/ad-review-status/README.md +0 -179
  120. package/.worktrees/ad-review-status/index.js +0 -169
  121. package/.worktrees/ad-review-status/jq.exe +0 -0
  122. package/.worktrees/ad-review-status/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  123. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  124. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  125. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  126. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  127. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  128. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  129. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  130. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-article.js +0 -19
  131. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  132. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  133. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  134. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  135. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  136. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  137. package/.worktrees/ad-review-status/migrations/2026-05-18-add-review-status-to-ad.js +0 -36
  138. package/.worktrees/ad-review-status/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  139. package/.worktrees/ad-review-status/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  140. package/.worktrees/ad-review-status/migrations/change-adset-name-to-text.js +0 -79
  141. package/.worktrees/ad-review-status/models/AICampaignQueue.js +0 -144
  142. package/.worktrees/ad-review-status/models/AIGenerationLog.js +0 -85
  143. package/.worktrees/ad-review-status/models/AIGenerationRequest.js +0 -212
  144. package/.worktrees/ad-review-status/models/ActivityHistory.js +0 -73
  145. package/.worktrees/ad-review-status/models/Ad.js +0 -312
  146. package/.worktrees/ad-review-status/models/AdAccount.js +0 -97
  147. package/.worktrees/ad-review-status/models/AdAccountValues.js +0 -26
  148. package/.worktrees/ad-review-status/models/AdHistory.js +0 -30
  149. package/.worktrees/ad-review-status/models/AdPerformance.js +0 -100
  150. package/.worktrees/ad-review-status/models/AdPerformanceHourly.js +0 -71
  151. package/.worktrees/ad-review-status/models/AdSet.js +0 -295
  152. package/.worktrees/ad-review-status/models/AdSetHistory.js +0 -30
  153. package/.worktrees/ad-review-status/models/AdsetPerformance.js +0 -132
  154. package/.worktrees/ad-review-status/models/AiArticleRetryQueue.js +0 -157
  155. package/.worktrees/ad-review-status/models/AiCreationRetryQueue.js +0 -127
  156. package/.worktrees/ad-review-status/models/Article.js +0 -212
  157. package/.worktrees/ad-review-status/models/AutomationRule.js +0 -173
  158. package/.worktrees/ad-review-status/models/BannerTemplate.js +0 -129
  159. package/.worktrees/ad-review-status/models/Buyers.js +0 -26
  160. package/.worktrees/ad-review-status/models/Campaign.js +0 -163
  161. package/.worktrees/ad-review-status/models/CampaignActionHistory.js +0 -86
  162. package/.worktrees/ad-review-status/models/CampaignCreationLog.js +0 -309
  163. package/.worktrees/ad-review-status/models/CampaignCreationLogV2.js +0 -314
  164. package/.worktrees/ad-review-status/models/CampaignHistory.js +0 -33
  165. package/.worktrees/ad-review-status/models/Channel.js +0 -55
  166. package/.worktrees/ad-review-status/models/CodefuelCampaign.js +0 -175
  167. package/.worktrees/ad-review-status/models/CodefuelCampaignKWHistory.js +0 -41
  168. package/.worktrees/ad-review-status/models/CodefuelKeywords.js +0 -35
  169. package/.worktrees/ad-review-status/models/CurrencyRate.js +0 -27
  170. package/.worktrees/ad-review-status/models/Domain.js +0 -40
  171. package/.worktrees/ad-review-status/models/DynamicFeed.js +0 -219
  172. package/.worktrees/ad-review-status/models/ExplorAdsChannel.js +0 -62
  173. package/.worktrees/ad-review-status/models/FacebookRetryQueue.js +0 -163
  174. package/.worktrees/ad-review-status/models/Feed.js +0 -34
  175. package/.worktrees/ad-review-status/models/FeedArticleConfiguration.js +0 -81
  176. package/.worktrees/ad-review-status/models/Files.js +0 -73
  177. package/.worktrees/ad-review-status/models/Folders.js +0 -133
  178. package/.worktrees/ad-review-status/models/FrontStoryChannel.js +0 -60
  179. package/.worktrees/ad-review-status/models/FrontStoryChannelV2.js +0 -60
  180. package/.worktrees/ad-review-status/models/GenericFlowRequest.js +0 -115
  181. package/.worktrees/ad-review-status/models/KeywordPerformance.js +0 -106
  182. package/.worktrees/ad-review-status/models/KeywordRotationState.js +0 -51
  183. package/.worktrees/ad-review-status/models/MidoWebChannel.js +0 -47
  184. package/.worktrees/ad-review-status/models/MineChannel.js +0 -43
  185. package/.worktrees/ad-review-status/models/Pages.js +0 -105
  186. package/.worktrees/ad-review-status/models/PipelineExecution.js +0 -59
  187. package/.worktrees/ad-review-status/models/PolicyDogsCreativeCache.js +0 -50
  188. package/.worktrees/ad-review-status/models/PolicyDogsImageCache.js +0 -30
  189. package/.worktrees/ad-review-status/models/Presets.js +0 -40
  190. package/.worktrees/ad-review-status/models/RSOCFeedCampaign.js +0 -375
  191. package/.worktrees/ad-review-status/models/RsocKeywordPerformance.js +0 -111
  192. package/.worktrees/ad-review-status/models/RuleAction.js +0 -90
  193. package/.worktrees/ad-review-status/models/RuleCondition.js +0 -137
  194. package/.worktrees/ad-review-status/models/RuleExecution.js +0 -107
  195. package/.worktrees/ad-review-status/models/RulesValues.js +0 -56
  196. package/.worktrees/ad-review-status/models/SupportedLocale.js +0 -24
  197. package/.worktrees/ad-review-status/models/SyncHistory.js +0 -250
  198. package/.worktrees/ad-review-status/models/TTQChannel.js +0 -42
  199. package/.worktrees/ad-review-status/models/TemplateMetadata.js +0 -260
  200. package/.worktrees/ad-review-status/models/Tier2_AdAccounts.js +0 -110
  201. package/.worktrees/ad-review-status/models/Tier2_Assets.js +0 -70
  202. package/.worktrees/ad-review-status/models/Tier2_BusinessManagers.js +0 -105
  203. package/.worktrees/ad-review-status/models/Tier2_CreditLines.js +0 -99
  204. package/.worktrees/ad-review-status/models/Tier2_Pages.js +0 -91
  205. package/.worktrees/ad-review-status/models/Tier2_Pixels.js +0 -82
  206. package/.worktrees/ad-review-status/models/Tier2_Tokens.js +0 -64
  207. package/.worktrees/ad-review-status/models/Tier2_UserAdAccounts.js +0 -83
  208. package/.worktrees/ad-review-status/models/TokenRotationState.js +0 -121
  209. package/.worktrees/ad-review-status/models/TonicCampaign.js +0 -97
  210. package/.worktrees/ad-review-status/models/TonicRSOCKeywordPerformance.js +0 -123
  211. package/.worktrees/ad-review-status/models/Users.js +0 -148
  212. package/.worktrees/ad-review-status/models/Vertical.js +0 -26
  213. package/.worktrees/ad-review-status/models/newFiles.js +0 -137
  214. package/.worktrees/ad-review-status/models/pixel.js +0 -47
  215. package/.worktrees/ad-review-status/package-lock.json +0 -405
  216. package/.worktrees/ad-review-status/package.json +0 -19
  217. package/.worktrees/ad-review-status/run.ps1 +0 -98
  218. package/.worktrees/ad-review-status/run.sh +0 -214
  219. package/.worktrees/ad-review-status/services/sequelizeService.js +0 -110
  220. package/.worktrees/add-platform-to-rule/LICENSE +0 -21
  221. package/.worktrees/add-platform-to-rule/README.md +0 -179
  222. package/.worktrees/add-platform-to-rule/index.js +0 -169
  223. package/.worktrees/add-platform-to-rule/jq.exe +0 -0
  224. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  225. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  226. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  227. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  228. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  229. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  230. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  231. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  232. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-article.js +0 -19
  233. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  234. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  235. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  236. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  237. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  238. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  239. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-rule.js +0 -19
  240. package/.worktrees/add-platform-to-rule/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  241. package/.worktrees/add-platform-to-rule/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  242. package/.worktrees/add-platform-to-rule/migrations/change-adset-name-to-text.js +0 -79
  243. package/.worktrees/add-platform-to-rule/models/AICampaignQueue.js +0 -144
  244. package/.worktrees/add-platform-to-rule/models/AIGenerationLog.js +0 -85
  245. package/.worktrees/add-platform-to-rule/models/AIGenerationRequest.js +0 -212
  246. package/.worktrees/add-platform-to-rule/models/ActivityHistory.js +0 -73
  247. package/.worktrees/add-platform-to-rule/models/Ad.js +0 -300
  248. package/.worktrees/add-platform-to-rule/models/AdAccount.js +0 -97
  249. package/.worktrees/add-platform-to-rule/models/AdAccountValues.js +0 -26
  250. package/.worktrees/add-platform-to-rule/models/AdHistory.js +0 -30
  251. package/.worktrees/add-platform-to-rule/models/AdPerformance.js +0 -100
  252. package/.worktrees/add-platform-to-rule/models/AdPerformanceHourly.js +0 -71
  253. package/.worktrees/add-platform-to-rule/models/AdSet.js +0 -295
  254. package/.worktrees/add-platform-to-rule/models/AdSetHistory.js +0 -30
  255. package/.worktrees/add-platform-to-rule/models/AdsetPerformance.js +0 -132
  256. package/.worktrees/add-platform-to-rule/models/AiArticleRetryQueue.js +0 -157
  257. package/.worktrees/add-platform-to-rule/models/AiCreationRetryQueue.js +0 -127
  258. package/.worktrees/add-platform-to-rule/models/Article.js +0 -212
  259. package/.worktrees/add-platform-to-rule/models/AutomationRule.js +0 -179
  260. package/.worktrees/add-platform-to-rule/models/BannerTemplate.js +0 -129
  261. package/.worktrees/add-platform-to-rule/models/Buyers.js +0 -26
  262. package/.worktrees/add-platform-to-rule/models/Campaign.js +0 -163
  263. package/.worktrees/add-platform-to-rule/models/CampaignActionHistory.js +0 -86
  264. package/.worktrees/add-platform-to-rule/models/CampaignCreationLog.js +0 -309
  265. package/.worktrees/add-platform-to-rule/models/CampaignCreationLogV2.js +0 -314
  266. package/.worktrees/add-platform-to-rule/models/CampaignHistory.js +0 -33
  267. package/.worktrees/add-platform-to-rule/models/Channel.js +0 -55
  268. package/.worktrees/add-platform-to-rule/models/CodefuelCampaign.js +0 -175
  269. package/.worktrees/add-platform-to-rule/models/CodefuelCampaignKWHistory.js +0 -41
  270. package/.worktrees/add-platform-to-rule/models/CodefuelKeywords.js +0 -35
  271. package/.worktrees/add-platform-to-rule/models/CurrencyRate.js +0 -27
  272. package/.worktrees/add-platform-to-rule/models/Domain.js +0 -40
  273. package/.worktrees/add-platform-to-rule/models/DynamicFeed.js +0 -219
  274. package/.worktrees/add-platform-to-rule/models/ExplorAdsChannel.js +0 -62
  275. package/.worktrees/add-platform-to-rule/models/FacebookRetryQueue.js +0 -163
  276. package/.worktrees/add-platform-to-rule/models/Feed.js +0 -34
  277. package/.worktrees/add-platform-to-rule/models/FeedArticleConfiguration.js +0 -81
  278. package/.worktrees/add-platform-to-rule/models/Files.js +0 -73
  279. package/.worktrees/add-platform-to-rule/models/Folders.js +0 -133
  280. package/.worktrees/add-platform-to-rule/models/FrontStoryChannel.js +0 -60
  281. package/.worktrees/add-platform-to-rule/models/FrontStoryChannelV2.js +0 -60
  282. package/.worktrees/add-platform-to-rule/models/GenericFlowRequest.js +0 -115
  283. package/.worktrees/add-platform-to-rule/models/KeywordPerformance.js +0 -106
  284. package/.worktrees/add-platform-to-rule/models/KeywordRotationState.js +0 -51
  285. package/.worktrees/add-platform-to-rule/models/MidoWebChannel.js +0 -47
  286. package/.worktrees/add-platform-to-rule/models/MineChannel.js +0 -43
  287. package/.worktrees/add-platform-to-rule/models/Pages.js +0 -105
  288. package/.worktrees/add-platform-to-rule/models/PipelineExecution.js +0 -59
  289. package/.worktrees/add-platform-to-rule/models/PolicyDogsCreativeCache.js +0 -50
  290. package/.worktrees/add-platform-to-rule/models/PolicyDogsImageCache.js +0 -30
  291. package/.worktrees/add-platform-to-rule/models/Presets.js +0 -40
  292. package/.worktrees/add-platform-to-rule/models/RSOCFeedCampaign.js +0 -375
  293. package/.worktrees/add-platform-to-rule/models/RsocKeywordPerformance.js +0 -111
  294. package/.worktrees/add-platform-to-rule/models/RuleAction.js +0 -90
  295. package/.worktrees/add-platform-to-rule/models/RuleCondition.js +0 -137
  296. package/.worktrees/add-platform-to-rule/models/RuleExecution.js +0 -107
  297. package/.worktrees/add-platform-to-rule/models/RulesValues.js +0 -56
  298. package/.worktrees/add-platform-to-rule/models/SupportedLocale.js +0 -24
  299. package/.worktrees/add-platform-to-rule/models/SyncHistory.js +0 -250
  300. package/.worktrees/add-platform-to-rule/models/TTQChannel.js +0 -42
  301. package/.worktrees/add-platform-to-rule/models/TemplateMetadata.js +0 -260
  302. package/.worktrees/add-platform-to-rule/models/Tier2_AdAccounts.js +0 -110
  303. package/.worktrees/add-platform-to-rule/models/Tier2_Assets.js +0 -70
  304. package/.worktrees/add-platform-to-rule/models/Tier2_BusinessManagers.js +0 -105
  305. package/.worktrees/add-platform-to-rule/models/Tier2_CreditLines.js +0 -99
  306. package/.worktrees/add-platform-to-rule/models/Tier2_Pages.js +0 -91
  307. package/.worktrees/add-platform-to-rule/models/Tier2_Pixels.js +0 -82
  308. package/.worktrees/add-platform-to-rule/models/Tier2_Tokens.js +0 -64
  309. package/.worktrees/add-platform-to-rule/models/Tier2_UserAdAccounts.js +0 -83
  310. package/.worktrees/add-platform-to-rule/models/TokenRotationState.js +0 -121
  311. package/.worktrees/add-platform-to-rule/models/TonicCampaign.js +0 -97
  312. package/.worktrees/add-platform-to-rule/models/TonicRSOCKeywordPerformance.js +0 -123
  313. package/.worktrees/add-platform-to-rule/models/Users.js +0 -148
  314. package/.worktrees/add-platform-to-rule/models/Vertical.js +0 -26
  315. package/.worktrees/add-platform-to-rule/models/newFiles.js +0 -137
  316. package/.worktrees/add-platform-to-rule/models/pixel.js +0 -47
  317. package/.worktrees/add-platform-to-rule/package-lock.json +0 -405
  318. package/.worktrees/add-platform-to-rule/package.json +0 -19
  319. package/.worktrees/add-platform-to-rule/run.ps1 +0 -98
  320. package/.worktrees/add-platform-to-rule/run.sh +0 -214
  321. package/.worktrees/add-platform-to-rule/services/sequelizeService.js +0 -110
  322. package/.worktrees/adperformance-platform/LICENSE +0 -21
  323. package/.worktrees/adperformance-platform/README.md +0 -179
  324. package/.worktrees/adperformance-platform/index.js +0 -169
  325. package/.worktrees/adperformance-platform/jq.exe +0 -0
  326. package/.worktrees/adperformance-platform/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  327. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  328. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  329. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  330. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  331. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  332. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  333. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  334. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-article.js +0 -19
  335. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  336. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  337. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  338. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  339. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  340. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  341. package/.worktrees/adperformance-platform/migrations/2026-05-18-add-platform-date-index-to-adperformance.js +0 -16
  342. package/.worktrees/adperformance-platform/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  343. package/.worktrees/adperformance-platform/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  344. package/.worktrees/adperformance-platform/migrations/change-adset-name-to-text.js +0 -79
  345. package/.worktrees/adperformance-platform/models/AICampaignQueue.js +0 -144
  346. package/.worktrees/adperformance-platform/models/AIGenerationLog.js +0 -85
  347. package/.worktrees/adperformance-platform/models/AIGenerationRequest.js +0 -212
  348. package/.worktrees/adperformance-platform/models/ActivityHistory.js +0 -73
  349. package/.worktrees/adperformance-platform/models/Ad.js +0 -300
  350. package/.worktrees/adperformance-platform/models/AdAccount.js +0 -97
  351. package/.worktrees/adperformance-platform/models/AdAccountValues.js +0 -26
  352. package/.worktrees/adperformance-platform/models/AdHistory.js +0 -30
  353. package/.worktrees/adperformance-platform/models/AdPerformance.js +0 -104
  354. package/.worktrees/adperformance-platform/models/AdPerformanceHourly.js +0 -71
  355. package/.worktrees/adperformance-platform/models/AdSet.js +0 -295
  356. package/.worktrees/adperformance-platform/models/AdSetHistory.js +0 -30
  357. package/.worktrees/adperformance-platform/models/AdsetPerformance.js +0 -132
  358. package/.worktrees/adperformance-platform/models/AiArticleRetryQueue.js +0 -157
  359. package/.worktrees/adperformance-platform/models/AiCreationRetryQueue.js +0 -127
  360. package/.worktrees/adperformance-platform/models/Article.js +0 -212
  361. package/.worktrees/adperformance-platform/models/AutomationRule.js +0 -173
  362. package/.worktrees/adperformance-platform/models/BannerTemplate.js +0 -129
  363. package/.worktrees/adperformance-platform/models/Buyers.js +0 -26
  364. package/.worktrees/adperformance-platform/models/Campaign.js +0 -163
  365. package/.worktrees/adperformance-platform/models/CampaignActionHistory.js +0 -86
  366. package/.worktrees/adperformance-platform/models/CampaignCreationLog.js +0 -309
  367. package/.worktrees/adperformance-platform/models/CampaignCreationLogV2.js +0 -314
  368. package/.worktrees/adperformance-platform/models/CampaignHistory.js +0 -33
  369. package/.worktrees/adperformance-platform/models/Channel.js +0 -55
  370. package/.worktrees/adperformance-platform/models/CodefuelCampaign.js +0 -175
  371. package/.worktrees/adperformance-platform/models/CodefuelCampaignKWHistory.js +0 -41
  372. package/.worktrees/adperformance-platform/models/CodefuelKeywords.js +0 -35
  373. package/.worktrees/adperformance-platform/models/CurrencyRate.js +0 -27
  374. package/.worktrees/adperformance-platform/models/Domain.js +0 -40
  375. package/.worktrees/adperformance-platform/models/DynamicFeed.js +0 -219
  376. package/.worktrees/adperformance-platform/models/ExplorAdsChannel.js +0 -62
  377. package/.worktrees/adperformance-platform/models/FacebookRetryQueue.js +0 -163
  378. package/.worktrees/adperformance-platform/models/Feed.js +0 -34
  379. package/.worktrees/adperformance-platform/models/FeedArticleConfiguration.js +0 -81
  380. package/.worktrees/adperformance-platform/models/Files.js +0 -73
  381. package/.worktrees/adperformance-platform/models/Folders.js +0 -133
  382. package/.worktrees/adperformance-platform/models/FrontStoryChannel.js +0 -60
  383. package/.worktrees/adperformance-platform/models/FrontStoryChannelV2.js +0 -60
  384. package/.worktrees/adperformance-platform/models/GenericFlowRequest.js +0 -115
  385. package/.worktrees/adperformance-platform/models/KeywordPerformance.js +0 -106
  386. package/.worktrees/adperformance-platform/models/KeywordRotationState.js +0 -51
  387. package/.worktrees/adperformance-platform/models/MidoWebChannel.js +0 -47
  388. package/.worktrees/adperformance-platform/models/MineChannel.js +0 -43
  389. package/.worktrees/adperformance-platform/models/Pages.js +0 -105
  390. package/.worktrees/adperformance-platform/models/PipelineExecution.js +0 -59
  391. package/.worktrees/adperformance-platform/models/PolicyDogsCreativeCache.js +0 -50
  392. package/.worktrees/adperformance-platform/models/PolicyDogsImageCache.js +0 -30
  393. package/.worktrees/adperformance-platform/models/Presets.js +0 -40
  394. package/.worktrees/adperformance-platform/models/RSOCFeedCampaign.js +0 -375
  395. package/.worktrees/adperformance-platform/models/RsocKeywordPerformance.js +0 -111
  396. package/.worktrees/adperformance-platform/models/RuleAction.js +0 -90
  397. package/.worktrees/adperformance-platform/models/RuleCondition.js +0 -137
  398. package/.worktrees/adperformance-platform/models/RuleExecution.js +0 -107
  399. package/.worktrees/adperformance-platform/models/RulesValues.js +0 -56
  400. package/.worktrees/adperformance-platform/models/SupportedLocale.js +0 -24
  401. package/.worktrees/adperformance-platform/models/SyncHistory.js +0 -250
  402. package/.worktrees/adperformance-platform/models/TTQChannel.js +0 -42
  403. package/.worktrees/adperformance-platform/models/TemplateMetadata.js +0 -260
  404. package/.worktrees/adperformance-platform/models/Tier2_AdAccounts.js +0 -110
  405. package/.worktrees/adperformance-platform/models/Tier2_Assets.js +0 -70
  406. package/.worktrees/adperformance-platform/models/Tier2_BusinessManagers.js +0 -105
  407. package/.worktrees/adperformance-platform/models/Tier2_CreditLines.js +0 -99
  408. package/.worktrees/adperformance-platform/models/Tier2_Pages.js +0 -91
  409. package/.worktrees/adperformance-platform/models/Tier2_Pixels.js +0 -82
  410. package/.worktrees/adperformance-platform/models/Tier2_Tokens.js +0 -64
  411. package/.worktrees/adperformance-platform/models/Tier2_UserAdAccounts.js +0 -83
  412. package/.worktrees/adperformance-platform/models/TokenRotationState.js +0 -121
  413. package/.worktrees/adperformance-platform/models/TonicCampaign.js +0 -97
  414. package/.worktrees/adperformance-platform/models/TonicRSOCKeywordPerformance.js +0 -123
  415. package/.worktrees/adperformance-platform/models/Users.js +0 -148
  416. package/.worktrees/adperformance-platform/models/Vertical.js +0 -26
  417. package/.worktrees/adperformance-platform/models/newFiles.js +0 -137
  418. package/.worktrees/adperformance-platform/models/pixel.js +0 -47
  419. package/.worktrees/adperformance-platform/package-lock.json +0 -405
  420. package/.worktrees/adperformance-platform/package.json +0 -19
  421. package/.worktrees/adperformance-platform/run.ps1 +0 -98
  422. package/.worktrees/adperformance-platform/run.sh +0 -214
  423. package/.worktrees/adperformance-platform/services/sequelizeService.js +0 -110
  424. package/.worktrees/adsetperformance-platform/LICENSE +0 -21
  425. package/.worktrees/adsetperformance-platform/README.md +0 -179
  426. package/.worktrees/adsetperformance-platform/index.js +0 -169
  427. package/.worktrees/adsetperformance-platform/jq.exe +0 -0
  428. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  429. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  430. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  431. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  432. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  433. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  434. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  435. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  436. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-article.js +0 -19
  437. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  438. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  439. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  440. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  441. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  442. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  443. package/.worktrees/adsetperformance-platform/migrations/2026-05-18-add-platform-date-index-to-adsetperformance.js +0 -16
  444. package/.worktrees/adsetperformance-platform/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  445. package/.worktrees/adsetperformance-platform/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  446. package/.worktrees/adsetperformance-platform/migrations/change-adset-name-to-text.js +0 -79
  447. package/.worktrees/adsetperformance-platform/models/AICampaignQueue.js +0 -144
  448. package/.worktrees/adsetperformance-platform/models/AIGenerationLog.js +0 -85
  449. package/.worktrees/adsetperformance-platform/models/AIGenerationRequest.js +0 -212
  450. package/.worktrees/adsetperformance-platform/models/ActivityHistory.js +0 -73
  451. package/.worktrees/adsetperformance-platform/models/Ad.js +0 -300
  452. package/.worktrees/adsetperformance-platform/models/AdAccount.js +0 -97
  453. package/.worktrees/adsetperformance-platform/models/AdAccountValues.js +0 -26
  454. package/.worktrees/adsetperformance-platform/models/AdHistory.js +0 -30
  455. package/.worktrees/adsetperformance-platform/models/AdPerformance.js +0 -100
  456. package/.worktrees/adsetperformance-platform/models/AdPerformanceHourly.js +0 -71
  457. package/.worktrees/adsetperformance-platform/models/AdSet.js +0 -295
  458. package/.worktrees/adsetperformance-platform/models/AdSetHistory.js +0 -30
  459. package/.worktrees/adsetperformance-platform/models/AdsetPerformance.js +0 -137
  460. package/.worktrees/adsetperformance-platform/models/AiArticleRetryQueue.js +0 -157
  461. package/.worktrees/adsetperformance-platform/models/AiCreationRetryQueue.js +0 -127
  462. package/.worktrees/adsetperformance-platform/models/ApiAuditLog.js +0 -84
  463. package/.worktrees/adsetperformance-platform/models/ApiToken.js +0 -67
  464. package/.worktrees/adsetperformance-platform/models/Article.js +0 -212
  465. package/.worktrees/adsetperformance-platform/models/AutomationRule.js +0 -173
  466. package/.worktrees/adsetperformance-platform/models/BannerTemplate.js +0 -129
  467. package/.worktrees/adsetperformance-platform/models/Buyers.js +0 -26
  468. package/.worktrees/adsetperformance-platform/models/Campaign.js +0 -163
  469. package/.worktrees/adsetperformance-platform/models/CampaignActionHistory.js +0 -86
  470. package/.worktrees/adsetperformance-platform/models/CampaignCreationLog.js +0 -309
  471. package/.worktrees/adsetperformance-platform/models/CampaignCreationLogV2.js +0 -314
  472. package/.worktrees/adsetperformance-platform/models/CampaignHistory.js +0 -33
  473. package/.worktrees/adsetperformance-platform/models/Channel.js +0 -55
  474. package/.worktrees/adsetperformance-platform/models/CodefuelCampaign.js +0 -175
  475. package/.worktrees/adsetperformance-platform/models/CodefuelCampaignKWHistory.js +0 -41
  476. package/.worktrees/adsetperformance-platform/models/CodefuelKeywords.js +0 -35
  477. package/.worktrees/adsetperformance-platform/models/CurrencyRate.js +0 -27
  478. package/.worktrees/adsetperformance-platform/models/Domain.js +0 -40
  479. package/.worktrees/adsetperformance-platform/models/DynamicFeed.js +0 -219
  480. package/.worktrees/adsetperformance-platform/models/ExplorAdsChannel.js +0 -62
  481. package/.worktrees/adsetperformance-platform/models/FacebookRetryQueue.js +0 -163
  482. package/.worktrees/adsetperformance-platform/models/Feed.js +0 -34
  483. package/.worktrees/adsetperformance-platform/models/FeedArticleConfiguration.js +0 -81
  484. package/.worktrees/adsetperformance-platform/models/Files.js +0 -73
  485. package/.worktrees/adsetperformance-platform/models/Folders.js +0 -133
  486. package/.worktrees/adsetperformance-platform/models/FrontStoryChannel.js +0 -60
  487. package/.worktrees/adsetperformance-platform/models/FrontStoryChannelV2.js +0 -60
  488. package/.worktrees/adsetperformance-platform/models/GenericFlowRequest.js +0 -115
  489. package/.worktrees/adsetperformance-platform/models/KeywordPerformance.js +0 -106
  490. package/.worktrees/adsetperformance-platform/models/KeywordRotationState.js +0 -51
  491. package/.worktrees/adsetperformance-platform/models/MidoWebChannel.js +0 -47
  492. package/.worktrees/adsetperformance-platform/models/MineChannel.js +0 -43
  493. package/.worktrees/adsetperformance-platform/models/Pages.js +0 -105
  494. package/.worktrees/adsetperformance-platform/models/PipelineExecution.js +0 -59
  495. package/.worktrees/adsetperformance-platform/models/PolicyDogsCreativeCache.js +0 -50
  496. package/.worktrees/adsetperformance-platform/models/PolicyDogsImageCache.js +0 -30
  497. package/.worktrees/adsetperformance-platform/models/Presets.js +0 -40
  498. package/.worktrees/adsetperformance-platform/models/RSOCFeedCampaign.js +0 -375
  499. package/.worktrees/adsetperformance-platform/models/RsocKeywordPerformance.js +0 -111
  500. package/.worktrees/adsetperformance-platform/models/RuleAction.js +0 -90
  501. package/.worktrees/adsetperformance-platform/models/RuleCondition.js +0 -137
  502. package/.worktrees/adsetperformance-platform/models/RuleExecution.js +0 -107
  503. package/.worktrees/adsetperformance-platform/models/RulesValues.js +0 -56
  504. package/.worktrees/adsetperformance-platform/models/SupportedLocale.js +0 -24
  505. package/.worktrees/adsetperformance-platform/models/SyncHistory.js +0 -250
  506. package/.worktrees/adsetperformance-platform/models/TTQChannel.js +0 -42
  507. package/.worktrees/adsetperformance-platform/models/TemplateMetadata.js +0 -260
  508. package/.worktrees/adsetperformance-platform/models/Tier2_AdAccounts.js +0 -110
  509. package/.worktrees/adsetperformance-platform/models/Tier2_Assets.js +0 -70
  510. package/.worktrees/adsetperformance-platform/models/Tier2_BusinessManagers.js +0 -105
  511. package/.worktrees/adsetperformance-platform/models/Tier2_CreditLines.js +0 -99
  512. package/.worktrees/adsetperformance-platform/models/Tier2_Pages.js +0 -91
  513. package/.worktrees/adsetperformance-platform/models/Tier2_Pixels.js +0 -82
  514. package/.worktrees/adsetperformance-platform/models/Tier2_Tokens.js +0 -64
  515. package/.worktrees/adsetperformance-platform/models/Tier2_UserAdAccounts.js +0 -83
  516. package/.worktrees/adsetperformance-platform/models/TokenRotationState.js +0 -121
  517. package/.worktrees/adsetperformance-platform/models/TonicCampaign.js +0 -97
  518. package/.worktrees/adsetperformance-platform/models/TonicRSOCKeywordPerformance.js +0 -123
  519. package/.worktrees/adsetperformance-platform/models/Users.js +0 -148
  520. package/.worktrees/adsetperformance-platform/models/Vertical.js +0 -26
  521. package/.worktrees/adsetperformance-platform/models/newFiles.js +0 -137
  522. package/.worktrees/adsetperformance-platform/models/pixel.js +0 -47
  523. package/.worktrees/adsetperformance-platform/package-lock.json +0 -406
  524. package/.worktrees/adsetperformance-platform/package.json +0 -19
  525. package/.worktrees/adsetperformance-platform/run.ps1 +0 -98
  526. package/.worktrees/adsetperformance-platform/run.sh +0 -214
  527. package/.worktrees/adsetperformance-platform/services/sequelizeService.js +0 -110
  528. package/.worktrees/aicampaign-queue-group-id/LICENSE +0 -21
  529. package/.worktrees/aicampaign-queue-group-id/README.md +0 -179
  530. package/.worktrees/aicampaign-queue-group-id/index.js +0 -169
  531. package/.worktrees/aicampaign-queue-group-id/jq.exe +0 -0
  532. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  533. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  534. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  535. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  536. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  537. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  538. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  539. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  540. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-article.js +0 -19
  541. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  542. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  543. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  544. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  545. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  546. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  547. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-18-add-group-id-to-ai-campaign-queue.js +0 -18
  548. package/.worktrees/aicampaign-queue-group-id/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  549. package/.worktrees/aicampaign-queue-group-id/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  550. package/.worktrees/aicampaign-queue-group-id/migrations/change-adset-name-to-text.js +0 -79
  551. package/.worktrees/aicampaign-queue-group-id/models/AICampaignQueue.js +0 -153
  552. package/.worktrees/aicampaign-queue-group-id/models/AIGenerationLog.js +0 -85
  553. package/.worktrees/aicampaign-queue-group-id/models/AIGenerationRequest.js +0 -212
  554. package/.worktrees/aicampaign-queue-group-id/models/ActivityHistory.js +0 -73
  555. package/.worktrees/aicampaign-queue-group-id/models/Ad.js +0 -300
  556. package/.worktrees/aicampaign-queue-group-id/models/AdAccount.js +0 -97
  557. package/.worktrees/aicampaign-queue-group-id/models/AdAccountValues.js +0 -26
  558. package/.worktrees/aicampaign-queue-group-id/models/AdHistory.js +0 -30
  559. package/.worktrees/aicampaign-queue-group-id/models/AdPerformance.js +0 -100
  560. package/.worktrees/aicampaign-queue-group-id/models/AdPerformanceHourly.js +0 -71
  561. package/.worktrees/aicampaign-queue-group-id/models/AdSet.js +0 -295
  562. package/.worktrees/aicampaign-queue-group-id/models/AdSetHistory.js +0 -30
  563. package/.worktrees/aicampaign-queue-group-id/models/AdsetPerformance.js +0 -132
  564. package/.worktrees/aicampaign-queue-group-id/models/AiArticleRetryQueue.js +0 -157
  565. package/.worktrees/aicampaign-queue-group-id/models/AiCreationRetryQueue.js +0 -127
  566. package/.worktrees/aicampaign-queue-group-id/models/Article.js +0 -212
  567. package/.worktrees/aicampaign-queue-group-id/models/AutomationRule.js +0 -173
  568. package/.worktrees/aicampaign-queue-group-id/models/BannerTemplate.js +0 -129
  569. package/.worktrees/aicampaign-queue-group-id/models/Buyers.js +0 -26
  570. package/.worktrees/aicampaign-queue-group-id/models/Campaign.js +0 -163
  571. package/.worktrees/aicampaign-queue-group-id/models/CampaignActionHistory.js +0 -86
  572. package/.worktrees/aicampaign-queue-group-id/models/CampaignCreationLog.js +0 -309
  573. package/.worktrees/aicampaign-queue-group-id/models/CampaignCreationLogV2.js +0 -314
  574. package/.worktrees/aicampaign-queue-group-id/models/CampaignHistory.js +0 -33
  575. package/.worktrees/aicampaign-queue-group-id/models/Channel.js +0 -55
  576. package/.worktrees/aicampaign-queue-group-id/models/CodefuelCampaign.js +0 -175
  577. package/.worktrees/aicampaign-queue-group-id/models/CodefuelCampaignKWHistory.js +0 -41
  578. package/.worktrees/aicampaign-queue-group-id/models/CodefuelKeywords.js +0 -35
  579. package/.worktrees/aicampaign-queue-group-id/models/CurrencyRate.js +0 -27
  580. package/.worktrees/aicampaign-queue-group-id/models/Domain.js +0 -40
  581. package/.worktrees/aicampaign-queue-group-id/models/DynamicFeed.js +0 -219
  582. package/.worktrees/aicampaign-queue-group-id/models/ExplorAdsChannel.js +0 -62
  583. package/.worktrees/aicampaign-queue-group-id/models/FacebookRetryQueue.js +0 -163
  584. package/.worktrees/aicampaign-queue-group-id/models/Feed.js +0 -34
  585. package/.worktrees/aicampaign-queue-group-id/models/FeedArticleConfiguration.js +0 -81
  586. package/.worktrees/aicampaign-queue-group-id/models/Files.js +0 -73
  587. package/.worktrees/aicampaign-queue-group-id/models/Folders.js +0 -133
  588. package/.worktrees/aicampaign-queue-group-id/models/FrontStoryChannel.js +0 -60
  589. package/.worktrees/aicampaign-queue-group-id/models/FrontStoryChannelV2.js +0 -60
  590. package/.worktrees/aicampaign-queue-group-id/models/GenericFlowRequest.js +0 -115
  591. package/.worktrees/aicampaign-queue-group-id/models/KeywordPerformance.js +0 -106
  592. package/.worktrees/aicampaign-queue-group-id/models/KeywordRotationState.js +0 -51
  593. package/.worktrees/aicampaign-queue-group-id/models/MidoWebChannel.js +0 -47
  594. package/.worktrees/aicampaign-queue-group-id/models/MineChannel.js +0 -43
  595. package/.worktrees/aicampaign-queue-group-id/models/Pages.js +0 -105
  596. package/.worktrees/aicampaign-queue-group-id/models/PipelineExecution.js +0 -59
  597. package/.worktrees/aicampaign-queue-group-id/models/PolicyDogsCreativeCache.js +0 -50
  598. package/.worktrees/aicampaign-queue-group-id/models/PolicyDogsImageCache.js +0 -30
  599. package/.worktrees/aicampaign-queue-group-id/models/Presets.js +0 -40
  600. package/.worktrees/aicampaign-queue-group-id/models/RSOCFeedCampaign.js +0 -375
  601. package/.worktrees/aicampaign-queue-group-id/models/RsocKeywordPerformance.js +0 -111
  602. package/.worktrees/aicampaign-queue-group-id/models/RuleAction.js +0 -90
  603. package/.worktrees/aicampaign-queue-group-id/models/RuleCondition.js +0 -137
  604. package/.worktrees/aicampaign-queue-group-id/models/RuleExecution.js +0 -107
  605. package/.worktrees/aicampaign-queue-group-id/models/RulesValues.js +0 -56
  606. package/.worktrees/aicampaign-queue-group-id/models/SupportedLocale.js +0 -24
  607. package/.worktrees/aicampaign-queue-group-id/models/SyncHistory.js +0 -250
  608. package/.worktrees/aicampaign-queue-group-id/models/TTQChannel.js +0 -42
  609. package/.worktrees/aicampaign-queue-group-id/models/TemplateMetadata.js +0 -260
  610. package/.worktrees/aicampaign-queue-group-id/models/Tier2_AdAccounts.js +0 -110
  611. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Assets.js +0 -70
  612. package/.worktrees/aicampaign-queue-group-id/models/Tier2_BusinessManagers.js +0 -105
  613. package/.worktrees/aicampaign-queue-group-id/models/Tier2_CreditLines.js +0 -99
  614. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Pages.js +0 -91
  615. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Pixels.js +0 -82
  616. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Tokens.js +0 -64
  617. package/.worktrees/aicampaign-queue-group-id/models/Tier2_UserAdAccounts.js +0 -83
  618. package/.worktrees/aicampaign-queue-group-id/models/TokenRotationState.js +0 -121
  619. package/.worktrees/aicampaign-queue-group-id/models/TonicCampaign.js +0 -97
  620. package/.worktrees/aicampaign-queue-group-id/models/TonicRSOCKeywordPerformance.js +0 -123
  621. package/.worktrees/aicampaign-queue-group-id/models/Users.js +0 -148
  622. package/.worktrees/aicampaign-queue-group-id/models/Vertical.js +0 -26
  623. package/.worktrees/aicampaign-queue-group-id/models/newFiles.js +0 -137
  624. package/.worktrees/aicampaign-queue-group-id/models/pixel.js +0 -47
  625. package/.worktrees/aicampaign-queue-group-id/package-lock.json +0 -405
  626. package/.worktrees/aicampaign-queue-group-id/package.json +0 -19
  627. package/.worktrees/aicampaign-queue-group-id/run.ps1 +0 -98
  628. package/.worktrees/aicampaign-queue-group-id/run.sh +0 -214
  629. package/.worktrees/aicampaign-queue-group-id/services/sequelizeService.js +0 -110
  630. package/.worktrees/canonical-insights-model/LICENSE +0 -21
  631. package/.worktrees/canonical-insights-model/README.md +0 -179
  632. package/.worktrees/canonical-insights-model/index.js +0 -169
  633. package/.worktrees/canonical-insights-model/jq.exe +0 -0
  634. package/.worktrees/canonical-insights-model/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  635. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  636. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  637. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  638. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  639. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  640. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  641. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  642. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-article.js +0 -19
  643. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  644. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  645. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  646. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  647. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  648. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  649. package/.worktrees/canonical-insights-model/migrations/2026-05-18-create-canonical-insights.js +0 -84
  650. package/.worktrees/canonical-insights-model/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  651. package/.worktrees/canonical-insights-model/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  652. package/.worktrees/canonical-insights-model/migrations/change-adset-name-to-text.js +0 -79
  653. package/.worktrees/canonical-insights-model/models/AICampaignQueue.js +0 -144
  654. package/.worktrees/canonical-insights-model/models/AIGenerationLog.js +0 -85
  655. package/.worktrees/canonical-insights-model/models/AIGenerationRequest.js +0 -212
  656. package/.worktrees/canonical-insights-model/models/ActivityHistory.js +0 -73
  657. package/.worktrees/canonical-insights-model/models/Ad.js +0 -300
  658. package/.worktrees/canonical-insights-model/models/AdAccount.js +0 -97
  659. package/.worktrees/canonical-insights-model/models/AdAccountValues.js +0 -26
  660. package/.worktrees/canonical-insights-model/models/AdHistory.js +0 -30
  661. package/.worktrees/canonical-insights-model/models/AdPerformance.js +0 -100
  662. package/.worktrees/canonical-insights-model/models/AdPerformanceHourly.js +0 -71
  663. package/.worktrees/canonical-insights-model/models/AdSet.js +0 -295
  664. package/.worktrees/canonical-insights-model/models/AdSetHistory.js +0 -30
  665. package/.worktrees/canonical-insights-model/models/AdsetPerformance.js +0 -132
  666. package/.worktrees/canonical-insights-model/models/AiArticleRetryQueue.js +0 -157
  667. package/.worktrees/canonical-insights-model/models/AiCreationRetryQueue.js +0 -127
  668. package/.worktrees/canonical-insights-model/models/Article.js +0 -212
  669. package/.worktrees/canonical-insights-model/models/AutomationRule.js +0 -173
  670. package/.worktrees/canonical-insights-model/models/BannerTemplate.js +0 -129
  671. package/.worktrees/canonical-insights-model/models/Buyers.js +0 -26
  672. package/.worktrees/canonical-insights-model/models/Campaign.js +0 -163
  673. package/.worktrees/canonical-insights-model/models/CampaignActionHistory.js +0 -86
  674. package/.worktrees/canonical-insights-model/models/CampaignCreationLog.js +0 -309
  675. package/.worktrees/canonical-insights-model/models/CampaignCreationLogV2.js +0 -314
  676. package/.worktrees/canonical-insights-model/models/CampaignHistory.js +0 -33
  677. package/.worktrees/canonical-insights-model/models/CanonicalInsights.js +0 -68
  678. package/.worktrees/canonical-insights-model/models/Channel.js +0 -55
  679. package/.worktrees/canonical-insights-model/models/CodefuelCampaign.js +0 -175
  680. package/.worktrees/canonical-insights-model/models/CodefuelCampaignKWHistory.js +0 -41
  681. package/.worktrees/canonical-insights-model/models/CodefuelKeywords.js +0 -35
  682. package/.worktrees/canonical-insights-model/models/CurrencyRate.js +0 -27
  683. package/.worktrees/canonical-insights-model/models/Domain.js +0 -40
  684. package/.worktrees/canonical-insights-model/models/DynamicFeed.js +0 -219
  685. package/.worktrees/canonical-insights-model/models/ExplorAdsChannel.js +0 -62
  686. package/.worktrees/canonical-insights-model/models/FacebookRetryQueue.js +0 -163
  687. package/.worktrees/canonical-insights-model/models/Feed.js +0 -34
  688. package/.worktrees/canonical-insights-model/models/FeedArticleConfiguration.js +0 -81
  689. package/.worktrees/canonical-insights-model/models/Files.js +0 -73
  690. package/.worktrees/canonical-insights-model/models/Folders.js +0 -133
  691. package/.worktrees/canonical-insights-model/models/FrontStoryChannel.js +0 -60
  692. package/.worktrees/canonical-insights-model/models/FrontStoryChannelV2.js +0 -60
  693. package/.worktrees/canonical-insights-model/models/GenericFlowRequest.js +0 -115
  694. package/.worktrees/canonical-insights-model/models/KeywordPerformance.js +0 -106
  695. package/.worktrees/canonical-insights-model/models/KeywordRotationState.js +0 -51
  696. package/.worktrees/canonical-insights-model/models/MidoWebChannel.js +0 -47
  697. package/.worktrees/canonical-insights-model/models/MineChannel.js +0 -43
  698. package/.worktrees/canonical-insights-model/models/Pages.js +0 -105
  699. package/.worktrees/canonical-insights-model/models/PipelineExecution.js +0 -59
  700. package/.worktrees/canonical-insights-model/models/PolicyDogsCreativeCache.js +0 -50
  701. package/.worktrees/canonical-insights-model/models/PolicyDogsImageCache.js +0 -30
  702. package/.worktrees/canonical-insights-model/models/Presets.js +0 -40
  703. package/.worktrees/canonical-insights-model/models/RSOCFeedCampaign.js +0 -375
  704. package/.worktrees/canonical-insights-model/models/RsocKeywordPerformance.js +0 -111
  705. package/.worktrees/canonical-insights-model/models/RuleAction.js +0 -90
  706. package/.worktrees/canonical-insights-model/models/RuleCondition.js +0 -137
  707. package/.worktrees/canonical-insights-model/models/RuleExecution.js +0 -107
  708. package/.worktrees/canonical-insights-model/models/RulesValues.js +0 -56
  709. package/.worktrees/canonical-insights-model/models/SupportedLocale.js +0 -24
  710. package/.worktrees/canonical-insights-model/models/SyncHistory.js +0 -250
  711. package/.worktrees/canonical-insights-model/models/TTQChannel.js +0 -42
  712. package/.worktrees/canonical-insights-model/models/TemplateMetadata.js +0 -260
  713. package/.worktrees/canonical-insights-model/models/Tier2_AdAccounts.js +0 -110
  714. package/.worktrees/canonical-insights-model/models/Tier2_Assets.js +0 -70
  715. package/.worktrees/canonical-insights-model/models/Tier2_BusinessManagers.js +0 -105
  716. package/.worktrees/canonical-insights-model/models/Tier2_CreditLines.js +0 -99
  717. package/.worktrees/canonical-insights-model/models/Tier2_Pages.js +0 -91
  718. package/.worktrees/canonical-insights-model/models/Tier2_Pixels.js +0 -82
  719. package/.worktrees/canonical-insights-model/models/Tier2_Tokens.js +0 -64
  720. package/.worktrees/canonical-insights-model/models/Tier2_UserAdAccounts.js +0 -83
  721. package/.worktrees/canonical-insights-model/models/TokenRotationState.js +0 -121
  722. package/.worktrees/canonical-insights-model/models/TonicCampaign.js +0 -97
  723. package/.worktrees/canonical-insights-model/models/TonicRSOCKeywordPerformance.js +0 -123
  724. package/.worktrees/canonical-insights-model/models/Users.js +0 -148
  725. package/.worktrees/canonical-insights-model/models/Vertical.js +0 -26
  726. package/.worktrees/canonical-insights-model/models/newFiles.js +0 -137
  727. package/.worktrees/canonical-insights-model/models/pixel.js +0 -47
  728. package/.worktrees/canonical-insights-model/package-lock.json +0 -405
  729. package/.worktrees/canonical-insights-model/package.json +0 -19
  730. package/.worktrees/canonical-insights-model/run.ps1 +0 -98
  731. package/.worktrees/canonical-insights-model/run.sh +0 -214
  732. package/.worktrees/canonical-insights-model/services/sequelizeService.js +0 -110
  733. package/.worktrees/creation-logs-platform-code/LICENSE +0 -21
  734. package/.worktrees/creation-logs-platform-code/README.md +0 -179
  735. package/.worktrees/creation-logs-platform-code/index.js +0 -169
  736. package/.worktrees/creation-logs-platform-code/jq.exe +0 -0
  737. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  738. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  739. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  740. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  741. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  742. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  743. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  744. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  745. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  746. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  747. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  748. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  749. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  750. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  751. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  752. package/.worktrees/creation-logs-platform-code/migrations/2026-05-18-add-platform-code-to-creation-logs.js +0 -65
  753. package/.worktrees/creation-logs-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  754. package/.worktrees/creation-logs-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  755. package/.worktrees/creation-logs-platform-code/migrations/change-adset-name-to-text.js +0 -79
  756. package/.worktrees/creation-logs-platform-code/models/AICampaignQueue.js +0 -144
  757. package/.worktrees/creation-logs-platform-code/models/AIGenerationLog.js +0 -85
  758. package/.worktrees/creation-logs-platform-code/models/AIGenerationRequest.js +0 -212
  759. package/.worktrees/creation-logs-platform-code/models/ActivityHistory.js +0 -73
  760. package/.worktrees/creation-logs-platform-code/models/Ad.js +0 -300
  761. package/.worktrees/creation-logs-platform-code/models/AdAccount.js +0 -97
  762. package/.worktrees/creation-logs-platform-code/models/AdAccountValues.js +0 -26
  763. package/.worktrees/creation-logs-platform-code/models/AdHistory.js +0 -30
  764. package/.worktrees/creation-logs-platform-code/models/AdPerformance.js +0 -100
  765. package/.worktrees/creation-logs-platform-code/models/AdPerformanceHourly.js +0 -71
  766. package/.worktrees/creation-logs-platform-code/models/AdSet.js +0 -295
  767. package/.worktrees/creation-logs-platform-code/models/AdSetHistory.js +0 -30
  768. package/.worktrees/creation-logs-platform-code/models/AdsetPerformance.js +0 -132
  769. package/.worktrees/creation-logs-platform-code/models/AiArticleRetryQueue.js +0 -157
  770. package/.worktrees/creation-logs-platform-code/models/AiCreationRetryQueue.js +0 -127
  771. package/.worktrees/creation-logs-platform-code/models/Article.js +0 -212
  772. package/.worktrees/creation-logs-platform-code/models/AutomationRule.js +0 -173
  773. package/.worktrees/creation-logs-platform-code/models/BannerTemplate.js +0 -129
  774. package/.worktrees/creation-logs-platform-code/models/Buyers.js +0 -26
  775. package/.worktrees/creation-logs-platform-code/models/Campaign.js +0 -163
  776. package/.worktrees/creation-logs-platform-code/models/CampaignActionHistory.js +0 -86
  777. package/.worktrees/creation-logs-platform-code/models/CampaignCreationLog.js +0 -321
  778. package/.worktrees/creation-logs-platform-code/models/CampaignCreationLogV2.js +0 -322
  779. package/.worktrees/creation-logs-platform-code/models/CampaignHistory.js +0 -33
  780. package/.worktrees/creation-logs-platform-code/models/Channel.js +0 -55
  781. package/.worktrees/creation-logs-platform-code/models/CodefuelCampaign.js +0 -175
  782. package/.worktrees/creation-logs-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  783. package/.worktrees/creation-logs-platform-code/models/CodefuelKeywords.js +0 -35
  784. package/.worktrees/creation-logs-platform-code/models/CurrencyRate.js +0 -27
  785. package/.worktrees/creation-logs-platform-code/models/Domain.js +0 -40
  786. package/.worktrees/creation-logs-platform-code/models/DynamicFeed.js +0 -219
  787. package/.worktrees/creation-logs-platform-code/models/ExplorAdsChannel.js +0 -62
  788. package/.worktrees/creation-logs-platform-code/models/FacebookRetryQueue.js +0 -163
  789. package/.worktrees/creation-logs-platform-code/models/Feed.js +0 -34
  790. package/.worktrees/creation-logs-platform-code/models/FeedArticleConfiguration.js +0 -81
  791. package/.worktrees/creation-logs-platform-code/models/Files.js +0 -73
  792. package/.worktrees/creation-logs-platform-code/models/Folders.js +0 -133
  793. package/.worktrees/creation-logs-platform-code/models/FrontStoryChannel.js +0 -60
  794. package/.worktrees/creation-logs-platform-code/models/FrontStoryChannelV2.js +0 -60
  795. package/.worktrees/creation-logs-platform-code/models/GenericFlowRequest.js +0 -115
  796. package/.worktrees/creation-logs-platform-code/models/KeywordPerformance.js +0 -106
  797. package/.worktrees/creation-logs-platform-code/models/KeywordRotationState.js +0 -51
  798. package/.worktrees/creation-logs-platform-code/models/MidoWebChannel.js +0 -47
  799. package/.worktrees/creation-logs-platform-code/models/MineChannel.js +0 -43
  800. package/.worktrees/creation-logs-platform-code/models/Pages.js +0 -105
  801. package/.worktrees/creation-logs-platform-code/models/PipelineExecution.js +0 -59
  802. package/.worktrees/creation-logs-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  803. package/.worktrees/creation-logs-platform-code/models/PolicyDogsImageCache.js +0 -30
  804. package/.worktrees/creation-logs-platform-code/models/Presets.js +0 -40
  805. package/.worktrees/creation-logs-platform-code/models/RSOCFeedCampaign.js +0 -375
  806. package/.worktrees/creation-logs-platform-code/models/RsocKeywordPerformance.js +0 -111
  807. package/.worktrees/creation-logs-platform-code/models/RuleAction.js +0 -90
  808. package/.worktrees/creation-logs-platform-code/models/RuleCondition.js +0 -137
  809. package/.worktrees/creation-logs-platform-code/models/RuleExecution.js +0 -107
  810. package/.worktrees/creation-logs-platform-code/models/RulesValues.js +0 -56
  811. package/.worktrees/creation-logs-platform-code/models/SupportedLocale.js +0 -24
  812. package/.worktrees/creation-logs-platform-code/models/SyncHistory.js +0 -250
  813. package/.worktrees/creation-logs-platform-code/models/TTQChannel.js +0 -42
  814. package/.worktrees/creation-logs-platform-code/models/TemplateMetadata.js +0 -260
  815. package/.worktrees/creation-logs-platform-code/models/Tier2_AdAccounts.js +0 -110
  816. package/.worktrees/creation-logs-platform-code/models/Tier2_Assets.js +0 -70
  817. package/.worktrees/creation-logs-platform-code/models/Tier2_BusinessManagers.js +0 -105
  818. package/.worktrees/creation-logs-platform-code/models/Tier2_CreditLines.js +0 -99
  819. package/.worktrees/creation-logs-platform-code/models/Tier2_Pages.js +0 -91
  820. package/.worktrees/creation-logs-platform-code/models/Tier2_Pixels.js +0 -82
  821. package/.worktrees/creation-logs-platform-code/models/Tier2_Tokens.js +0 -64
  822. package/.worktrees/creation-logs-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  823. package/.worktrees/creation-logs-platform-code/models/TokenRotationState.js +0 -121
  824. package/.worktrees/creation-logs-platform-code/models/TonicCampaign.js +0 -97
  825. package/.worktrees/creation-logs-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  826. package/.worktrees/creation-logs-platform-code/models/Users.js +0 -148
  827. package/.worktrees/creation-logs-platform-code/models/Vertical.js +0 -26
  828. package/.worktrees/creation-logs-platform-code/models/newFiles.js +0 -137
  829. package/.worktrees/creation-logs-platform-code/models/pixel.js +0 -47
  830. package/.worktrees/creation-logs-platform-code/package-lock.json +0 -405
  831. package/.worktrees/creation-logs-platform-code/package.json +0 -19
  832. package/.worktrees/creation-logs-platform-code/run.ps1 +0 -98
  833. package/.worktrees/creation-logs-platform-code/run.sh +0 -214
  834. package/.worktrees/creation-logs-platform-code/services/sequelizeService.js +0 -110
  835. package/.worktrees/pixels-platform-code/LICENSE +0 -21
  836. package/.worktrees/pixels-platform-code/README.md +0 -179
  837. package/.worktrees/pixels-platform-code/index.js +0 -169
  838. package/.worktrees/pixels-platform-code/jq.exe +0 -0
  839. package/.worktrees/pixels-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  840. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  841. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  842. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  843. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  844. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  845. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  846. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  847. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  848. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  849. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  850. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  851. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  852. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  853. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  854. package/.worktrees/pixels-platform-code/migrations/2026-05-18-add-platform-code-to-pixels.js +0 -55
  855. package/.worktrees/pixels-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  856. package/.worktrees/pixels-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  857. package/.worktrees/pixels-platform-code/migrations/change-adset-name-to-text.js +0 -79
  858. package/.worktrees/pixels-platform-code/models/AICampaignQueue.js +0 -144
  859. package/.worktrees/pixels-platform-code/models/AIGenerationLog.js +0 -85
  860. package/.worktrees/pixels-platform-code/models/AIGenerationRequest.js +0 -212
  861. package/.worktrees/pixels-platform-code/models/ActivityHistory.js +0 -73
  862. package/.worktrees/pixels-platform-code/models/Ad.js +0 -300
  863. package/.worktrees/pixels-platform-code/models/AdAccount.js +0 -97
  864. package/.worktrees/pixels-platform-code/models/AdAccountValues.js +0 -26
  865. package/.worktrees/pixels-platform-code/models/AdHistory.js +0 -30
  866. package/.worktrees/pixels-platform-code/models/AdPerformance.js +0 -100
  867. package/.worktrees/pixels-platform-code/models/AdPerformanceHourly.js +0 -71
  868. package/.worktrees/pixels-platform-code/models/AdSet.js +0 -295
  869. package/.worktrees/pixels-platform-code/models/AdSetHistory.js +0 -30
  870. package/.worktrees/pixels-platform-code/models/AdsetPerformance.js +0 -132
  871. package/.worktrees/pixels-platform-code/models/AiArticleRetryQueue.js +0 -157
  872. package/.worktrees/pixels-platform-code/models/AiCreationRetryQueue.js +0 -127
  873. package/.worktrees/pixels-platform-code/models/Article.js +0 -212
  874. package/.worktrees/pixels-platform-code/models/AutomationRule.js +0 -173
  875. package/.worktrees/pixels-platform-code/models/BannerTemplate.js +0 -129
  876. package/.worktrees/pixels-platform-code/models/Buyers.js +0 -26
  877. package/.worktrees/pixels-platform-code/models/Campaign.js +0 -163
  878. package/.worktrees/pixels-platform-code/models/CampaignActionHistory.js +0 -86
  879. package/.worktrees/pixels-platform-code/models/CampaignCreationLog.js +0 -309
  880. package/.worktrees/pixels-platform-code/models/CampaignCreationLogV2.js +0 -314
  881. package/.worktrees/pixels-platform-code/models/CampaignHistory.js +0 -33
  882. package/.worktrees/pixels-platform-code/models/Channel.js +0 -55
  883. package/.worktrees/pixels-platform-code/models/CodefuelCampaign.js +0 -175
  884. package/.worktrees/pixels-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  885. package/.worktrees/pixels-platform-code/models/CodefuelKeywords.js +0 -35
  886. package/.worktrees/pixels-platform-code/models/CurrencyRate.js +0 -27
  887. package/.worktrees/pixels-platform-code/models/Domain.js +0 -40
  888. package/.worktrees/pixels-platform-code/models/DynamicFeed.js +0 -219
  889. package/.worktrees/pixels-platform-code/models/ExplorAdsChannel.js +0 -62
  890. package/.worktrees/pixels-platform-code/models/FacebookRetryQueue.js +0 -163
  891. package/.worktrees/pixels-platform-code/models/Feed.js +0 -34
  892. package/.worktrees/pixels-platform-code/models/FeedArticleConfiguration.js +0 -81
  893. package/.worktrees/pixels-platform-code/models/Files.js +0 -73
  894. package/.worktrees/pixels-platform-code/models/Folders.js +0 -133
  895. package/.worktrees/pixels-platform-code/models/FrontStoryChannel.js +0 -60
  896. package/.worktrees/pixels-platform-code/models/FrontStoryChannelV2.js +0 -60
  897. package/.worktrees/pixels-platform-code/models/GenericFlowRequest.js +0 -115
  898. package/.worktrees/pixels-platform-code/models/KeywordPerformance.js +0 -106
  899. package/.worktrees/pixels-platform-code/models/KeywordRotationState.js +0 -51
  900. package/.worktrees/pixels-platform-code/models/MidoWebChannel.js +0 -47
  901. package/.worktrees/pixels-platform-code/models/MineChannel.js +0 -43
  902. package/.worktrees/pixels-platform-code/models/Pages.js +0 -105
  903. package/.worktrees/pixels-platform-code/models/PipelineExecution.js +0 -59
  904. package/.worktrees/pixels-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  905. package/.worktrees/pixels-platform-code/models/PolicyDogsImageCache.js +0 -30
  906. package/.worktrees/pixels-platform-code/models/Presets.js +0 -40
  907. package/.worktrees/pixels-platform-code/models/RSOCFeedCampaign.js +0 -375
  908. package/.worktrees/pixels-platform-code/models/RsocKeywordPerformance.js +0 -111
  909. package/.worktrees/pixels-platform-code/models/RuleAction.js +0 -90
  910. package/.worktrees/pixels-platform-code/models/RuleCondition.js +0 -137
  911. package/.worktrees/pixels-platform-code/models/RuleExecution.js +0 -107
  912. package/.worktrees/pixels-platform-code/models/RulesValues.js +0 -56
  913. package/.worktrees/pixels-platform-code/models/SupportedLocale.js +0 -24
  914. package/.worktrees/pixels-platform-code/models/SyncHistory.js +0 -250
  915. package/.worktrees/pixels-platform-code/models/TTQChannel.js +0 -42
  916. package/.worktrees/pixels-platform-code/models/TemplateMetadata.js +0 -260
  917. package/.worktrees/pixels-platform-code/models/Tier2_AdAccounts.js +0 -110
  918. package/.worktrees/pixels-platform-code/models/Tier2_Assets.js +0 -70
  919. package/.worktrees/pixels-platform-code/models/Tier2_BusinessManagers.js +0 -105
  920. package/.worktrees/pixels-platform-code/models/Tier2_CreditLines.js +0 -99
  921. package/.worktrees/pixels-platform-code/models/Tier2_Pages.js +0 -91
  922. package/.worktrees/pixels-platform-code/models/Tier2_Pixels.js +0 -82
  923. package/.worktrees/pixels-platform-code/models/Tier2_Tokens.js +0 -64
  924. package/.worktrees/pixels-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  925. package/.worktrees/pixels-platform-code/models/TokenRotationState.js +0 -121
  926. package/.worktrees/pixels-platform-code/models/TonicCampaign.js +0 -97
  927. package/.worktrees/pixels-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  928. package/.worktrees/pixels-platform-code/models/Users.js +0 -148
  929. package/.worktrees/pixels-platform-code/models/Vertical.js +0 -26
  930. package/.worktrees/pixels-platform-code/models/newFiles.js +0 -137
  931. package/.worktrees/pixels-platform-code/models/pixel.js +0 -53
  932. package/.worktrees/pixels-platform-code/package-lock.json +0 -405
  933. package/.worktrees/pixels-platform-code/package.json +0 -19
  934. package/.worktrees/pixels-platform-code/run.ps1 +0 -98
  935. package/.worktrees/pixels-platform-code/run.sh +0 -214
  936. package/.worktrees/pixels-platform-code/services/sequelizeService.js +0 -110
  937. package/.worktrees/rsoc-feed-campaigns-platform-code/LICENSE +0 -21
  938. package/.worktrees/rsoc-feed-campaigns-platform-code/README.md +0 -179
  939. package/.worktrees/rsoc-feed-campaigns-platform-code/index.js +0 -169
  940. package/.worktrees/rsoc-feed-campaigns-platform-code/jq.exe +0 -0
  941. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  942. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  943. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  944. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  945. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  946. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  947. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  948. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  949. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  950. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  951. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  952. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  953. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  954. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  955. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  956. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-18-add-platform-code-to-rsoc-feed-campaigns.js +0 -55
  957. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  958. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  959. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/change-adset-name-to-text.js +0 -79
  960. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AICampaignQueue.js +0 -144
  961. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AIGenerationLog.js +0 -85
  962. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AIGenerationRequest.js +0 -212
  963. package/.worktrees/rsoc-feed-campaigns-platform-code/models/ActivityHistory.js +0 -73
  964. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Ad.js +0 -300
  965. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdAccount.js +0 -97
  966. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdAccountValues.js +0 -26
  967. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdHistory.js +0 -30
  968. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdPerformance.js +0 -100
  969. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdPerformanceHourly.js +0 -71
  970. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdSet.js +0 -295
  971. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdSetHistory.js +0 -30
  972. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdsetPerformance.js +0 -132
  973. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AiArticleRetryQueue.js +0 -157
  974. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AiCreationRetryQueue.js +0 -127
  975. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Article.js +0 -212
  976. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AutomationRule.js +0 -173
  977. package/.worktrees/rsoc-feed-campaigns-platform-code/models/BannerTemplate.js +0 -129
  978. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Buyers.js +0 -26
  979. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Campaign.js +0 -163
  980. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignActionHistory.js +0 -86
  981. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignCreationLog.js +0 -309
  982. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignCreationLogV2.js +0 -314
  983. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignHistory.js +0 -33
  984. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Channel.js +0 -55
  985. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelCampaign.js +0 -175
  986. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  987. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelKeywords.js +0 -35
  988. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CurrencyRate.js +0 -27
  989. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Domain.js +0 -40
  990. package/.worktrees/rsoc-feed-campaigns-platform-code/models/DynamicFeed.js +0 -219
  991. package/.worktrees/rsoc-feed-campaigns-platform-code/models/ExplorAdsChannel.js +0 -62
  992. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FacebookRetryQueue.js +0 -163
  993. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Feed.js +0 -34
  994. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FeedArticleConfiguration.js +0 -81
  995. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Files.js +0 -73
  996. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Folders.js +0 -133
  997. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FrontStoryChannel.js +0 -60
  998. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FrontStoryChannelV2.js +0 -60
  999. package/.worktrees/rsoc-feed-campaigns-platform-code/models/GenericFlowRequest.js +0 -115
  1000. package/.worktrees/rsoc-feed-campaigns-platform-code/models/KeywordPerformance.js +0 -106
  1001. package/.worktrees/rsoc-feed-campaigns-platform-code/models/KeywordRotationState.js +0 -51
  1002. package/.worktrees/rsoc-feed-campaigns-platform-code/models/MidoWebChannel.js +0 -47
  1003. package/.worktrees/rsoc-feed-campaigns-platform-code/models/MineChannel.js +0 -43
  1004. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Pages.js +0 -105
  1005. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PipelineExecution.js +0 -59
  1006. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  1007. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PolicyDogsImageCache.js +0 -30
  1008. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Presets.js +0 -40
  1009. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RSOCFeedCampaign.js +0 -381
  1010. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RsocKeywordPerformance.js +0 -111
  1011. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleAction.js +0 -90
  1012. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleCondition.js +0 -137
  1013. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleExecution.js +0 -107
  1014. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RulesValues.js +0 -56
  1015. package/.worktrees/rsoc-feed-campaigns-platform-code/models/SupportedLocale.js +0 -24
  1016. package/.worktrees/rsoc-feed-campaigns-platform-code/models/SyncHistory.js +0 -250
  1017. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TTQChannel.js +0 -42
  1018. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TemplateMetadata.js +0 -260
  1019. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_AdAccounts.js +0 -110
  1020. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Assets.js +0 -70
  1021. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_BusinessManagers.js +0 -105
  1022. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_CreditLines.js +0 -99
  1023. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Pages.js +0 -91
  1024. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Pixels.js +0 -82
  1025. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Tokens.js +0 -64
  1026. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  1027. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TokenRotationState.js +0 -121
  1028. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TonicCampaign.js +0 -97
  1029. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  1030. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Users.js +0 -148
  1031. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Vertical.js +0 -26
  1032. package/.worktrees/rsoc-feed-campaigns-platform-code/models/newFiles.js +0 -137
  1033. package/.worktrees/rsoc-feed-campaigns-platform-code/models/pixel.js +0 -47
  1034. package/.worktrees/rsoc-feed-campaigns-platform-code/package-lock.json +0 -405
  1035. package/.worktrees/rsoc-feed-campaigns-platform-code/package.json +0 -19
  1036. package/.worktrees/rsoc-feed-campaigns-platform-code/run.ps1 +0 -98
  1037. package/.worktrees/rsoc-feed-campaigns-platform-code/run.sh +0 -214
  1038. package/.worktrees/rsoc-feed-campaigns-platform-code/services/sequelizeService.js +0 -110
  1039. package/.worktrees/tt-snp-adset-ad-tables/LICENSE +0 -21
  1040. package/.worktrees/tt-snp-adset-ad-tables/README.md +0 -179
  1041. package/.worktrees/tt-snp-adset-ad-tables/index.js +0 -169
  1042. package/.worktrees/tt-snp-adset-ad-tables/jq.exe +0 -0
  1043. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1044. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1045. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1046. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1047. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1048. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1049. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1050. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1051. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1052. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1053. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1054. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1055. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1056. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1057. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1058. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-18-create-tt-snp-adset-ad-tables.js +0 -309
  1059. package/.worktrees/tt-snp-adset-ad-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1060. package/.worktrees/tt-snp-adset-ad-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1061. package/.worktrees/tt-snp-adset-ad-tables/migrations/change-adset-name-to-text.js +0 -79
  1062. package/.worktrees/tt-snp-adset-ad-tables/models/AICampaignQueue.js +0 -144
  1063. package/.worktrees/tt-snp-adset-ad-tables/models/AIGenerationLog.js +0 -85
  1064. package/.worktrees/tt-snp-adset-ad-tables/models/AIGenerationRequest.js +0 -212
  1065. package/.worktrees/tt-snp-adset-ad-tables/models/ActivityHistory.js +0 -73
  1066. package/.worktrees/tt-snp-adset-ad-tables/models/Ad.js +0 -300
  1067. package/.worktrees/tt-snp-adset-ad-tables/models/AdAccount.js +0 -97
  1068. package/.worktrees/tt-snp-adset-ad-tables/models/AdAccountValues.js +0 -26
  1069. package/.worktrees/tt-snp-adset-ad-tables/models/AdHistory.js +0 -30
  1070. package/.worktrees/tt-snp-adset-ad-tables/models/AdPerformance.js +0 -100
  1071. package/.worktrees/tt-snp-adset-ad-tables/models/AdPerformanceHourly.js +0 -71
  1072. package/.worktrees/tt-snp-adset-ad-tables/models/AdSet.js +0 -295
  1073. package/.worktrees/tt-snp-adset-ad-tables/models/AdSetHistory.js +0 -30
  1074. package/.worktrees/tt-snp-adset-ad-tables/models/AdsetPerformance.js +0 -132
  1075. package/.worktrees/tt-snp-adset-ad-tables/models/AiArticleRetryQueue.js +0 -157
  1076. package/.worktrees/tt-snp-adset-ad-tables/models/AiCreationRetryQueue.js +0 -127
  1077. package/.worktrees/tt-snp-adset-ad-tables/models/Article.js +0 -212
  1078. package/.worktrees/tt-snp-adset-ad-tables/models/AutomationRule.js +0 -173
  1079. package/.worktrees/tt-snp-adset-ad-tables/models/BannerTemplate.js +0 -129
  1080. package/.worktrees/tt-snp-adset-ad-tables/models/Buyers.js +0 -26
  1081. package/.worktrees/tt-snp-adset-ad-tables/models/Campaign.js +0 -163
  1082. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignActionHistory.js +0 -86
  1083. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignCreationLog.js +0 -309
  1084. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignCreationLogV2.js +0 -314
  1085. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignHistory.js +0 -33
  1086. package/.worktrees/tt-snp-adset-ad-tables/models/Channel.js +0 -55
  1087. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelCampaign.js +0 -175
  1088. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1089. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelKeywords.js +0 -35
  1090. package/.worktrees/tt-snp-adset-ad-tables/models/CurrencyRate.js +0 -27
  1091. package/.worktrees/tt-snp-adset-ad-tables/models/Domain.js +0 -40
  1092. package/.worktrees/tt-snp-adset-ad-tables/models/DynamicFeed.js +0 -219
  1093. package/.worktrees/tt-snp-adset-ad-tables/models/ExplorAdsChannel.js +0 -62
  1094. package/.worktrees/tt-snp-adset-ad-tables/models/FacebookRetryQueue.js +0 -163
  1095. package/.worktrees/tt-snp-adset-ad-tables/models/Feed.js +0 -34
  1096. package/.worktrees/tt-snp-adset-ad-tables/models/FeedArticleConfiguration.js +0 -81
  1097. package/.worktrees/tt-snp-adset-ad-tables/models/Files.js +0 -73
  1098. package/.worktrees/tt-snp-adset-ad-tables/models/Folders.js +0 -133
  1099. package/.worktrees/tt-snp-adset-ad-tables/models/FrontStoryChannel.js +0 -60
  1100. package/.worktrees/tt-snp-adset-ad-tables/models/FrontStoryChannelV2.js +0 -60
  1101. package/.worktrees/tt-snp-adset-ad-tables/models/GenericFlowRequest.js +0 -115
  1102. package/.worktrees/tt-snp-adset-ad-tables/models/KeywordPerformance.js +0 -106
  1103. package/.worktrees/tt-snp-adset-ad-tables/models/KeywordRotationState.js +0 -51
  1104. package/.worktrees/tt-snp-adset-ad-tables/models/MidoWebChannel.js +0 -47
  1105. package/.worktrees/tt-snp-adset-ad-tables/models/MineChannel.js +0 -43
  1106. package/.worktrees/tt-snp-adset-ad-tables/models/Pages.js +0 -105
  1107. package/.worktrees/tt-snp-adset-ad-tables/models/PipelineExecution.js +0 -59
  1108. package/.worktrees/tt-snp-adset-ad-tables/models/PolicyDogsCreativeCache.js +0 -50
  1109. package/.worktrees/tt-snp-adset-ad-tables/models/PolicyDogsImageCache.js +0 -30
  1110. package/.worktrees/tt-snp-adset-ad-tables/models/Presets.js +0 -40
  1111. package/.worktrees/tt-snp-adset-ad-tables/models/RSOCFeedCampaign.js +0 -375
  1112. package/.worktrees/tt-snp-adset-ad-tables/models/RsocKeywordPerformance.js +0 -111
  1113. package/.worktrees/tt-snp-adset-ad-tables/models/RuleAction.js +0 -90
  1114. package/.worktrees/tt-snp-adset-ad-tables/models/RuleCondition.js +0 -137
  1115. package/.worktrees/tt-snp-adset-ad-tables/models/RuleExecution.js +0 -107
  1116. package/.worktrees/tt-snp-adset-ad-tables/models/RulesValues.js +0 -56
  1117. package/.worktrees/tt-snp-adset-ad-tables/models/SnapchatAd.js +0 -69
  1118. package/.worktrees/tt-snp-adset-ad-tables/models/SnapchatAdSquad.js +0 -92
  1119. package/.worktrees/tt-snp-adset-ad-tables/models/SupportedLocale.js +0 -24
  1120. package/.worktrees/tt-snp-adset-ad-tables/models/SyncHistory.js +0 -250
  1121. package/.worktrees/tt-snp-adset-ad-tables/models/TTQChannel.js +0 -42
  1122. package/.worktrees/tt-snp-adset-ad-tables/models/TemplateMetadata.js +0 -260
  1123. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_AdAccounts.js +0 -110
  1124. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Assets.js +0 -70
  1125. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_BusinessManagers.js +0 -105
  1126. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_CreditLines.js +0 -99
  1127. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Pages.js +0 -91
  1128. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Pixels.js +0 -82
  1129. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Tokens.js +0 -64
  1130. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_UserAdAccounts.js +0 -83
  1131. package/.worktrees/tt-snp-adset-ad-tables/models/TikTokAd.js +0 -71
  1132. package/.worktrees/tt-snp-adset-ad-tables/models/TikTokAdGroup.js +0 -82
  1133. package/.worktrees/tt-snp-adset-ad-tables/models/TokenRotationState.js +0 -121
  1134. package/.worktrees/tt-snp-adset-ad-tables/models/TonicCampaign.js +0 -97
  1135. package/.worktrees/tt-snp-adset-ad-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1136. package/.worktrees/tt-snp-adset-ad-tables/models/Users.js +0 -148
  1137. package/.worktrees/tt-snp-adset-ad-tables/models/Vertical.js +0 -26
  1138. package/.worktrees/tt-snp-adset-ad-tables/models/newFiles.js +0 -137
  1139. package/.worktrees/tt-snp-adset-ad-tables/models/pixel.js +0 -47
  1140. package/.worktrees/tt-snp-adset-ad-tables/package-lock.json +0 -405
  1141. package/.worktrees/tt-snp-adset-ad-tables/package.json +0 -19
  1142. package/.worktrees/tt-snp-adset-ad-tables/run.ps1 +0 -98
  1143. package/.worktrees/tt-snp-adset-ad-tables/run.sh +0 -214
  1144. package/.worktrees/tt-snp-adset-ad-tables/services/sequelizeService.js +0 -110
  1145. package/.worktrees/tt-snp-asset-tables/LICENSE +0 -21
  1146. package/.worktrees/tt-snp-asset-tables/README.md +0 -179
  1147. package/.worktrees/tt-snp-asset-tables/index.js +0 -169
  1148. package/.worktrees/tt-snp-asset-tables/jq.exe +0 -0
  1149. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1150. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1151. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1152. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1153. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1154. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1155. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1156. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1157. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1158. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1159. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1160. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1161. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1162. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1163. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1164. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-18-create-snapchat-public-profiles.js +0 -68
  1165. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-18-create-tiktok-identities.js +0 -71
  1166. package/.worktrees/tt-snp-asset-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1167. package/.worktrees/tt-snp-asset-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1168. package/.worktrees/tt-snp-asset-tables/migrations/change-adset-name-to-text.js +0 -79
  1169. package/.worktrees/tt-snp-asset-tables/models/AICampaignQueue.js +0 -144
  1170. package/.worktrees/tt-snp-asset-tables/models/AIGenerationLog.js +0 -85
  1171. package/.worktrees/tt-snp-asset-tables/models/AIGenerationRequest.js +0 -212
  1172. package/.worktrees/tt-snp-asset-tables/models/ActivityHistory.js +0 -73
  1173. package/.worktrees/tt-snp-asset-tables/models/Ad.js +0 -300
  1174. package/.worktrees/tt-snp-asset-tables/models/AdAccount.js +0 -97
  1175. package/.worktrees/tt-snp-asset-tables/models/AdAccountValues.js +0 -26
  1176. package/.worktrees/tt-snp-asset-tables/models/AdHistory.js +0 -30
  1177. package/.worktrees/tt-snp-asset-tables/models/AdPerformance.js +0 -100
  1178. package/.worktrees/tt-snp-asset-tables/models/AdPerformanceHourly.js +0 -71
  1179. package/.worktrees/tt-snp-asset-tables/models/AdSet.js +0 -295
  1180. package/.worktrees/tt-snp-asset-tables/models/AdSetHistory.js +0 -30
  1181. package/.worktrees/tt-snp-asset-tables/models/AdsetPerformance.js +0 -132
  1182. package/.worktrees/tt-snp-asset-tables/models/AiArticleRetryQueue.js +0 -157
  1183. package/.worktrees/tt-snp-asset-tables/models/AiCreationRetryQueue.js +0 -127
  1184. package/.worktrees/tt-snp-asset-tables/models/Article.js +0 -212
  1185. package/.worktrees/tt-snp-asset-tables/models/AutomationRule.js +0 -173
  1186. package/.worktrees/tt-snp-asset-tables/models/BannerTemplate.js +0 -129
  1187. package/.worktrees/tt-snp-asset-tables/models/Buyers.js +0 -26
  1188. package/.worktrees/tt-snp-asset-tables/models/Campaign.js +0 -163
  1189. package/.worktrees/tt-snp-asset-tables/models/CampaignActionHistory.js +0 -86
  1190. package/.worktrees/tt-snp-asset-tables/models/CampaignCreationLog.js +0 -309
  1191. package/.worktrees/tt-snp-asset-tables/models/CampaignCreationLogV2.js +0 -314
  1192. package/.worktrees/tt-snp-asset-tables/models/CampaignHistory.js +0 -33
  1193. package/.worktrees/tt-snp-asset-tables/models/Channel.js +0 -55
  1194. package/.worktrees/tt-snp-asset-tables/models/CodefuelCampaign.js +0 -175
  1195. package/.worktrees/tt-snp-asset-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1196. package/.worktrees/tt-snp-asset-tables/models/CodefuelKeywords.js +0 -35
  1197. package/.worktrees/tt-snp-asset-tables/models/CurrencyRate.js +0 -27
  1198. package/.worktrees/tt-snp-asset-tables/models/Domain.js +0 -40
  1199. package/.worktrees/tt-snp-asset-tables/models/DynamicFeed.js +0 -219
  1200. package/.worktrees/tt-snp-asset-tables/models/ExplorAdsChannel.js +0 -62
  1201. package/.worktrees/tt-snp-asset-tables/models/FacebookRetryQueue.js +0 -163
  1202. package/.worktrees/tt-snp-asset-tables/models/Feed.js +0 -34
  1203. package/.worktrees/tt-snp-asset-tables/models/FeedArticleConfiguration.js +0 -81
  1204. package/.worktrees/tt-snp-asset-tables/models/Files.js +0 -73
  1205. package/.worktrees/tt-snp-asset-tables/models/Folders.js +0 -133
  1206. package/.worktrees/tt-snp-asset-tables/models/FrontStoryChannel.js +0 -60
  1207. package/.worktrees/tt-snp-asset-tables/models/FrontStoryChannelV2.js +0 -60
  1208. package/.worktrees/tt-snp-asset-tables/models/GenericFlowRequest.js +0 -115
  1209. package/.worktrees/tt-snp-asset-tables/models/KeywordPerformance.js +0 -106
  1210. package/.worktrees/tt-snp-asset-tables/models/KeywordRotationState.js +0 -51
  1211. package/.worktrees/tt-snp-asset-tables/models/MidoWebChannel.js +0 -47
  1212. package/.worktrees/tt-snp-asset-tables/models/MineChannel.js +0 -43
  1213. package/.worktrees/tt-snp-asset-tables/models/Pages.js +0 -105
  1214. package/.worktrees/tt-snp-asset-tables/models/PipelineExecution.js +0 -59
  1215. package/.worktrees/tt-snp-asset-tables/models/PolicyDogsCreativeCache.js +0 -50
  1216. package/.worktrees/tt-snp-asset-tables/models/PolicyDogsImageCache.js +0 -30
  1217. package/.worktrees/tt-snp-asset-tables/models/Presets.js +0 -40
  1218. package/.worktrees/tt-snp-asset-tables/models/RSOCFeedCampaign.js +0 -375
  1219. package/.worktrees/tt-snp-asset-tables/models/RsocKeywordPerformance.js +0 -111
  1220. package/.worktrees/tt-snp-asset-tables/models/RuleAction.js +0 -90
  1221. package/.worktrees/tt-snp-asset-tables/models/RuleCondition.js +0 -137
  1222. package/.worktrees/tt-snp-asset-tables/models/RuleExecution.js +0 -107
  1223. package/.worktrees/tt-snp-asset-tables/models/RulesValues.js +0 -56
  1224. package/.worktrees/tt-snp-asset-tables/models/SnapchatPublicProfiles.js +0 -47
  1225. package/.worktrees/tt-snp-asset-tables/models/SupportedLocale.js +0 -24
  1226. package/.worktrees/tt-snp-asset-tables/models/SyncHistory.js +0 -250
  1227. package/.worktrees/tt-snp-asset-tables/models/TTQChannel.js +0 -42
  1228. package/.worktrees/tt-snp-asset-tables/models/TemplateMetadata.js +0 -260
  1229. package/.worktrees/tt-snp-asset-tables/models/Tier2_AdAccounts.js +0 -110
  1230. package/.worktrees/tt-snp-asset-tables/models/Tier2_Assets.js +0 -70
  1231. package/.worktrees/tt-snp-asset-tables/models/Tier2_BusinessManagers.js +0 -105
  1232. package/.worktrees/tt-snp-asset-tables/models/Tier2_CreditLines.js +0 -99
  1233. package/.worktrees/tt-snp-asset-tables/models/Tier2_Pages.js +0 -91
  1234. package/.worktrees/tt-snp-asset-tables/models/Tier2_Pixels.js +0 -82
  1235. package/.worktrees/tt-snp-asset-tables/models/Tier2_Tokens.js +0 -64
  1236. package/.worktrees/tt-snp-asset-tables/models/Tier2_UserAdAccounts.js +0 -83
  1237. package/.worktrees/tt-snp-asset-tables/models/TiktokIdentities.js +0 -51
  1238. package/.worktrees/tt-snp-asset-tables/models/TokenRotationState.js +0 -121
  1239. package/.worktrees/tt-snp-asset-tables/models/TonicCampaign.js +0 -97
  1240. package/.worktrees/tt-snp-asset-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1241. package/.worktrees/tt-snp-asset-tables/models/Users.js +0 -148
  1242. package/.worktrees/tt-snp-asset-tables/models/Vertical.js +0 -26
  1243. package/.worktrees/tt-snp-asset-tables/models/newFiles.js +0 -137
  1244. package/.worktrees/tt-snp-asset-tables/models/pixel.js +0 -47
  1245. package/.worktrees/tt-snp-asset-tables/package-lock.json +0 -405
  1246. package/.worktrees/tt-snp-asset-tables/package.json +0 -19
  1247. package/.worktrees/tt-snp-asset-tables/run.ps1 +0 -98
  1248. package/.worktrees/tt-snp-asset-tables/run.sh +0 -214
  1249. package/.worktrees/tt-snp-asset-tables/services/sequelizeService.js +0 -110
  1250. package/.worktrees/tt-snp-campaign-tables/LICENSE +0 -21
  1251. package/.worktrees/tt-snp-campaign-tables/README.md +0 -179
  1252. package/.worktrees/tt-snp-campaign-tables/index.js +0 -169
  1253. package/.worktrees/tt-snp-campaign-tables/jq.exe +0 -0
  1254. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1255. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1256. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1257. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1258. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1259. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1260. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1261. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1262. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1263. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1264. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1265. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1266. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1267. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1268. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1269. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-18-create-tiktok-snapchat-campaigns.js +0 -143
  1270. package/.worktrees/tt-snp-campaign-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1271. package/.worktrees/tt-snp-campaign-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1272. package/.worktrees/tt-snp-campaign-tables/migrations/change-adset-name-to-text.js +0 -79
  1273. package/.worktrees/tt-snp-campaign-tables/models/AICampaignQueue.js +0 -144
  1274. package/.worktrees/tt-snp-campaign-tables/models/AIGenerationLog.js +0 -85
  1275. package/.worktrees/tt-snp-campaign-tables/models/AIGenerationRequest.js +0 -212
  1276. package/.worktrees/tt-snp-campaign-tables/models/ActivityHistory.js +0 -73
  1277. package/.worktrees/tt-snp-campaign-tables/models/Ad.js +0 -300
  1278. package/.worktrees/tt-snp-campaign-tables/models/AdAccount.js +0 -97
  1279. package/.worktrees/tt-snp-campaign-tables/models/AdAccountValues.js +0 -26
  1280. package/.worktrees/tt-snp-campaign-tables/models/AdHistory.js +0 -30
  1281. package/.worktrees/tt-snp-campaign-tables/models/AdPerformance.js +0 -100
  1282. package/.worktrees/tt-snp-campaign-tables/models/AdPerformanceHourly.js +0 -71
  1283. package/.worktrees/tt-snp-campaign-tables/models/AdSet.js +0 -295
  1284. package/.worktrees/tt-snp-campaign-tables/models/AdSetHistory.js +0 -30
  1285. package/.worktrees/tt-snp-campaign-tables/models/AdsetPerformance.js +0 -132
  1286. package/.worktrees/tt-snp-campaign-tables/models/AiArticleRetryQueue.js +0 -157
  1287. package/.worktrees/tt-snp-campaign-tables/models/AiCreationRetryQueue.js +0 -127
  1288. package/.worktrees/tt-snp-campaign-tables/models/Article.js +0 -212
  1289. package/.worktrees/tt-snp-campaign-tables/models/AutomationRule.js +0 -173
  1290. package/.worktrees/tt-snp-campaign-tables/models/BannerTemplate.js +0 -129
  1291. package/.worktrees/tt-snp-campaign-tables/models/Buyers.js +0 -26
  1292. package/.worktrees/tt-snp-campaign-tables/models/Campaign.js +0 -163
  1293. package/.worktrees/tt-snp-campaign-tables/models/CampaignActionHistory.js +0 -86
  1294. package/.worktrees/tt-snp-campaign-tables/models/CampaignCreationLog.js +0 -309
  1295. package/.worktrees/tt-snp-campaign-tables/models/CampaignCreationLogV2.js +0 -314
  1296. package/.worktrees/tt-snp-campaign-tables/models/CampaignHistory.js +0 -33
  1297. package/.worktrees/tt-snp-campaign-tables/models/Channel.js +0 -55
  1298. package/.worktrees/tt-snp-campaign-tables/models/CodefuelCampaign.js +0 -175
  1299. package/.worktrees/tt-snp-campaign-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1300. package/.worktrees/tt-snp-campaign-tables/models/CodefuelKeywords.js +0 -35
  1301. package/.worktrees/tt-snp-campaign-tables/models/CurrencyRate.js +0 -27
  1302. package/.worktrees/tt-snp-campaign-tables/models/Domain.js +0 -40
  1303. package/.worktrees/tt-snp-campaign-tables/models/DynamicFeed.js +0 -219
  1304. package/.worktrees/tt-snp-campaign-tables/models/ExplorAdsChannel.js +0 -62
  1305. package/.worktrees/tt-snp-campaign-tables/models/FacebookRetryQueue.js +0 -163
  1306. package/.worktrees/tt-snp-campaign-tables/models/Feed.js +0 -34
  1307. package/.worktrees/tt-snp-campaign-tables/models/FeedArticleConfiguration.js +0 -81
  1308. package/.worktrees/tt-snp-campaign-tables/models/Files.js +0 -73
  1309. package/.worktrees/tt-snp-campaign-tables/models/Folders.js +0 -133
  1310. package/.worktrees/tt-snp-campaign-tables/models/FrontStoryChannel.js +0 -60
  1311. package/.worktrees/tt-snp-campaign-tables/models/FrontStoryChannelV2.js +0 -60
  1312. package/.worktrees/tt-snp-campaign-tables/models/GenericFlowRequest.js +0 -115
  1313. package/.worktrees/tt-snp-campaign-tables/models/KeywordPerformance.js +0 -106
  1314. package/.worktrees/tt-snp-campaign-tables/models/KeywordRotationState.js +0 -51
  1315. package/.worktrees/tt-snp-campaign-tables/models/MidoWebChannel.js +0 -47
  1316. package/.worktrees/tt-snp-campaign-tables/models/MineChannel.js +0 -43
  1317. package/.worktrees/tt-snp-campaign-tables/models/Pages.js +0 -105
  1318. package/.worktrees/tt-snp-campaign-tables/models/PipelineExecution.js +0 -59
  1319. package/.worktrees/tt-snp-campaign-tables/models/PolicyDogsCreativeCache.js +0 -50
  1320. package/.worktrees/tt-snp-campaign-tables/models/PolicyDogsImageCache.js +0 -30
  1321. package/.worktrees/tt-snp-campaign-tables/models/Presets.js +0 -40
  1322. package/.worktrees/tt-snp-campaign-tables/models/RSOCFeedCampaign.js +0 -375
  1323. package/.worktrees/tt-snp-campaign-tables/models/RsocKeywordPerformance.js +0 -111
  1324. package/.worktrees/tt-snp-campaign-tables/models/RuleAction.js +0 -90
  1325. package/.worktrees/tt-snp-campaign-tables/models/RuleCondition.js +0 -137
  1326. package/.worktrees/tt-snp-campaign-tables/models/RuleExecution.js +0 -107
  1327. package/.worktrees/tt-snp-campaign-tables/models/RulesValues.js +0 -56
  1328. package/.worktrees/tt-snp-campaign-tables/models/SnapchatCampaign.js +0 -69
  1329. package/.worktrees/tt-snp-campaign-tables/models/SupportedLocale.js +0 -24
  1330. package/.worktrees/tt-snp-campaign-tables/models/SyncHistory.js +0 -250
  1331. package/.worktrees/tt-snp-campaign-tables/models/TTQChannel.js +0 -42
  1332. package/.worktrees/tt-snp-campaign-tables/models/TemplateMetadata.js +0 -260
  1333. package/.worktrees/tt-snp-campaign-tables/models/Tier2_AdAccounts.js +0 -110
  1334. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Assets.js +0 -70
  1335. package/.worktrees/tt-snp-campaign-tables/models/Tier2_BusinessManagers.js +0 -105
  1336. package/.worktrees/tt-snp-campaign-tables/models/Tier2_CreditLines.js +0 -99
  1337. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Pages.js +0 -91
  1338. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Pixels.js +0 -82
  1339. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Tokens.js +0 -64
  1340. package/.worktrees/tt-snp-campaign-tables/models/Tier2_UserAdAccounts.js +0 -83
  1341. package/.worktrees/tt-snp-campaign-tables/models/TikTokCampaign.js +0 -71
  1342. package/.worktrees/tt-snp-campaign-tables/models/TokenRotationState.js +0 -121
  1343. package/.worktrees/tt-snp-campaign-tables/models/TonicCampaign.js +0 -97
  1344. package/.worktrees/tt-snp-campaign-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1345. package/.worktrees/tt-snp-campaign-tables/models/Users.js +0 -148
  1346. package/.worktrees/tt-snp-campaign-tables/models/Vertical.js +0 -26
  1347. package/.worktrees/tt-snp-campaign-tables/models/newFiles.js +0 -137
  1348. package/.worktrees/tt-snp-campaign-tables/models/pixel.js +0 -47
  1349. package/.worktrees/tt-snp-campaign-tables/package-lock.json +0 -405
  1350. package/.worktrees/tt-snp-campaign-tables/package.json +0 -19
  1351. package/.worktrees/tt-snp-campaign-tables/run.ps1 +0 -98
  1352. package/.worktrees/tt-snp-campaign-tables/run.sh +0 -214
  1353. package/.worktrees/tt-snp-campaign-tables/services/sequelizeService.js +0 -110
@@ -1,691 +1,691 @@
1
- # Tarzo ↔ Skalio Integration — Full Technical Documentation
2
-
3
- ## 🎯 Goal & Introduction
4
-
5
- The goal of this task is to integrate **Tarzo** (platform.tarzo.io) as a new feed provider inside our **Skalio** dashboard, allowing us to launch Facebook campaigns directly from Skalio into Tarzo without using any official API (since Tarzo does not have one). Instead, we reverse-engineered Tarzo's internal API endpoints and authentication mechanism to operate as a normal logged-in user.
6
-
7
- **What we want to achieve:**
8
- 1. **Campaign Creation** — Create Tarzo campaigns from Skalio the same way we do for other feed providers (Predicto, Mine, Compado, etc.), using the same Skalio form, naming conventions, and presets.
9
- 2. **Policy Center Sync** — Fetch policy review statuses (approved, in_review, pending, rejected reasons, notes) from Tarzo and reflect them in Skalio's Campaign Logs page.
10
- 3. **Performance Reporting** — Fetch revenue, ad clicks, conversions, and other feed-provider metrics from Tarzo by campaign ID, and merge them with the spend data we already pull from Facebook — exactly as we do for other RSOC feeds.
11
- 4. **Ad Account & Page Sync** — Pull the list of Tarzo ad accounts and Facebook pages into Skalio so they are selectable when creating a Tarzo campaign.
12
-
13
- **Technical approach:** All communication is server-to-server. The Tarzo user's JWT token (extracted from localStorage on login) is stored securely on our backend. Every API call to Tarzo uses this token in the `Authorization` header. The token auto-refreshes on every response. No browser scraping is needed — all endpoints are standard JSON REST calls.
14
-
15
- > **Important:** When making requests to Tarzo's system, do not reference our system name, do not mention "API integration", and behave exactly as a regular logged-in Tarzo user would.
16
-
17
- ---
18
-
19
- ## Table of Contents
20
- 1. Architecture Overview
21
- 2. Tarzo Authentication
22
- 3. Tarzo API Reference — Campaign Creation
23
- 4. Tarzo API Reference — Policy Center
24
- 5. Tarzo API Reference — Performance / Reporting
25
- 6. Skalio System Overview
26
- 7. Skalio Internal API Reference
27
- 8. Field Mapping: Skalio → Tarzo
28
- 9. Campaign Naming Convention Mapping
29
- 10. New Skalio Feed Provider Entry ("Tarzo - RSOC")
30
- 11. Performance Data Fetch Strategy
31
- 12. Policy Center Integration Strategy
32
- 13. Ad Accounts & Facebook Pages Sync
33
- 14. Implementation Checklist
34
-
35
- ---
36
-
37
- ## 1. Architecture Overview
38
-
39
- The integration works as follows: Skalio acts as the orchestrator. When a user creates a campaign in Skalio with "Tarzo - RSOC" selected as the feed provider, Skalio's backend must:
40
-
41
- 1. Use the Tarzo user's JWT token (stored in a secure backend config, not exposed to the frontend) to authenticate against Tarzo's internal API at `https://prod.tarzo.click/api/v1`
42
- 2. Pre-check channel availability via `GET /api/v1/channel-management/available`
43
- 3. POST a campaign payload to `POST /api/v1/facebook/creator/campaign/create`
44
- 4. Store the returned Tarzo campaign ID mapped to the Skalio campaign ID
45
- 5. Periodically sync policy status via `GET /api/v1/compliance/feed`
46
- 6. Periodically sync performance data via `GET /api/v1/facebook/hometalk/campaigns/report/campaign?campaignId=...`
47
-
48
- No browser-side scraping is needed. All communication is server-to-server using the stored JWT token.
49
-
50
- ---
51
-
52
- ## 2. Tarzo Authentication
53
-
54
- **Token source:** The JWT is stored in Tarzo's browser localStorage under the key "authorization". For your integration, a Tarzo account must be set up as a service account, and the token should be extracted once (at login time) and stored securely on your backend. The token auto-refreshes: every response from Tarzo's API includes a refreshed authorization header — your backend must update the stored token on every response.
55
-
56
- **How to authenticate every request:**
57
- ```
58
- Authorization: <jwt_token>
59
- Content-Type: application/json
60
- Accept: application/json
61
- ```
62
-
63
- **All requests go to:** `https://prod.tarzo.click/api/v1/<endpoint>`
64
-
65
- **Session validation:** `GET /api/v1/auth/iam` — call this to validate the token and get user info (firstName, id). These are used in campaign naming.
66
-
67
- **Token refresh logic:**
68
- - On each response, check if an `authorization` header is returned
69
- - If yes, update the stored token with the new value
70
- - If a `deauthorization` header is returned, the session has expired — re-login required
71
-
72
- ---
73
-
74
- ## 3. Tarzo API Reference — Campaign Creation
75
-
76
- ### Pre-flight Checks
77
-
78
- **Check available Tarzo channels:**
79
- ```
80
- GET /api/v1/channel-management/available?revenueSource=hometalk
81
- GET /api/v1/channel-management/available?revenueSource=hometalk&integrationId=<integration_id>
82
- ```
83
- Returns remaining channel count. Abort if zero.
84
-
85
- **Get ad accounts:**
86
- ```
87
- GET /api/v1/facebook/accounts?revenueSource=hometalk
88
- ```
89
- Returns the list of ad account objects. Each has an id and a display code (e.g. "D-1", "R-1920").
90
-
91
- **Get integrations:**
92
- ```
93
- GET /api/v1/integration-management?revenueSource=hometalk&enabled=true&network=facebook
94
- ```
95
- Returns integration objects including integration ID (needed for domain filtering and the campaign payload).
96
-
97
- **Get domains:**
98
- ```
99
- GET /api/v1/domain-management?revenueSource=hometalk&network=facebook
100
- GET /api/v1/domain-management?revenueSource=hometalk&integrationId=<id>
101
- ```
102
- Returns available Tarzo domains (e.g. https://www.upgradedhome.com/dcg).
103
-
104
- **Get topics / offers:**
105
- ```
106
- GET /api/v1/backoffice/offers
107
- ```
108
- Returns all topics/verticals (e.g. "internet-providers", "roof-replacement").
109
-
110
- ### Initialize Article (Hometalk)
111
-
112
- This must be done before campaign creation. It reserves a Tarzo channel and returns an article ID.
113
-
114
- ```
115
- POST /api/v1/hometalk/assets/initialize-article
116
- Content-Type: application/json
117
-
118
- {
119
- "offer": "internet-providers",
120
- "domain": "https://www.upgradedhome.com/dcg",
121
- "language": "en",
122
- "keyword": "<main keyword, max 80 chars, English only>",
123
- "articleContent": "<optional comma-separated extra keywords>",
124
- "terms": []
125
- }
126
- ```
127
- Returns: An article/channel ID used in the campaign creation URL.
128
-
129
- ### Create Campaign
130
-
131
- ```
132
- POST /api/v1/facebook/creator/campaign/create/<articleId>
133
- Content-Type: application/json
134
-
135
- {
136
- "campaigns": [
137
- {
138
- "campaign": {
139
- "name": "ww-en-fb-tz-tsuf-147-internet-providers-464-[5G Internet Guide]-488",
140
- "freeText": "",
141
- "accountId": "act_1234567890",
142
- "objective": "OUTCOME_SALES",
143
- "campaignType": "website",
144
- "specialAdCategories": [],
145
- "budget": 5,
146
- "budgetType": "daily",
147
- "isAdvantagePlus": false
148
- },
149
- "adSets": [
150
- {
151
- "budget": 5,
152
- "countries": [],
153
- "regions": [],
154
- "language": "en",
155
- "device": "",
156
- "platforms": ["facebook", "instagram"],
157
- "placements": [],
158
- "os": "",
159
- "pixelId": "<facebook_pixel_id>",
160
- "bidStrategy": "LOWEST_COST_WITHOUT_CAP",
161
- "bidAmount": "",
162
- "pixelEvent": "PURCHASE",
163
- "optimizationGoal": "OFFSITE_CONVERSIONS",
164
- "adType": "SINGLE",
165
- "startTime": null,
166
- "attributionSpec": "",
167
- "ageTargeting": { "min": 18, "max": 65 },
168
- "genders": [],
169
- "ads": [
170
- {
171
- "status": "ACTIVE",
172
- "targetUrl": "https://...",
173
- "urlTag": "",
174
- "displayUrl": "",
175
- "pageId": "<facebook_page_id>",
176
- "pageCredentials": false,
177
- "primaryText": "...",
178
- "headlineText": "...",
179
- "description": "",
180
- "cta": "LEARN_MORE",
181
- "selectedCreatives": ["<creative_id>"],
182
- "translationLanguage": ""
183
- }
184
- ]
185
- }
186
- ],
187
- "hometalk": {
188
- "offer": "internet-providers",
189
- "keyword": "<main keyword>",
190
- "articleContent": "",
191
- "domain": "https://www.upgradedhome.com/dcg",
192
- "language": "en",
193
- "terms": []
194
- }
195
- }
196
- ]
197
- }
198
- ```
199
-
200
- **If article was not pre-initialized:** Use `POST /api/v1/facebook/creator/campaign/create` (no trailing ID).
201
-
202
- **Duplicate an existing campaign:**
203
- ```
204
- POST /api/v1/facebook/creator/campaign/duplicate/<baseCampaignId>
205
- Body: { "campaigns": [...] }
206
- ```
207
-
208
- ### Tarzo Campaign Field Reference
209
-
210
- **Campaign-level fields:**
211
-
212
- | Field | Type | Allowed Values |
213
- |---|---|---|
214
- | objective | enum | OUTCOME_SALES, OUTCOME_TRAFFIC, OUTCOME_LEADS, OUTCOME_ENGAGEMENT, OUTCOME_AWARENESS, OUTCOME_APP_PROMOTION |
215
- | campaignType | enum | website, app, website-and-app, messaging-app, calls |
216
- | specialAdCategories | array | [], ["HOUSING"], ["EMPLOYMENT"], ["FINANCIAL_PRODUCTS_SERVICES"] |
217
- | budgetType | enum | daily, lifetime |
218
- | budget | number | Any positive number |
219
- | isAdvantagePlus | boolean | false (default) |
220
-
221
- **Ad Set-level fields:**
222
-
223
- | Field | Type | Allowed Values / Notes |
224
- |---|---|---|
225
- | bidStrategy | enum | LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS |
226
- | optimizationGoal | enum | OFFSITE_CONVERSIONS (default), LINK_CLICKS, IMPRESSIONS, LANDING_PAGE_VIEWS |
227
- | platforms | array | facebook, instagram, messenger, audience_network |
228
- | adType | enum | SINGLE, FLEXIBLE — NO Carousel support |
229
- | countries | array | ISO country codes, or empty array for Worldwide |
230
- | genders | array | ["male"], ["female"], or [] for all |
231
- | ageTargeting | object | { "min": 18, "max": 65 } |
232
- | device | string | "desktop", "mobile", or "" for all |
233
- | os | string | OS filter string or empty |
234
- | pixelEvent | enum | PURCHASE (default) |
235
-
236
- **Ad-level fields:**
237
-
238
- | Field | Type | Notes |
239
- |---|---|---|
240
- | cta | enum | LEARN_MORE, WATCH_MORE, WATCH_VIDEO, SHOP_NOW, SIGN_UP, GET_OFFER, APPLY_NOW, GET_QUOTE, SEE_MORE, BOOK_NOW, CONTACT_US, CALLS |
241
- | headlineText | string | Min 10, max 100 chars |
242
- | description | string | Optional, min 20 max 250 chars |
243
- | selectedCreatives | array | Creative IDs from Tarzo's library |
244
-
245
- **Special categories constraint:** Cannot use HOUSING, EMPLOYMENT, or FINANCIAL_PRODUCTS_SERVICES when targeting Worldwide (empty countries). Enforce this in Skalio before sending.
246
-
247
- ---
248
-
249
- ## 4. Tarzo API Reference — Policy Center
250
-
251
- ### Fetch policy data (paginated)
252
- ```
253
- GET /api/v1/compliance/feed
254
- ?revenueSource=hometalk
255
- &network=facebook
256
- &search=
257
- &status=<allowed|in_review|pending|unknown>
258
- &integrationId=
259
- &sortBy=
260
- &offset=0
261
- &limit=25
262
- &users[]=<userId>
263
- &createdAt.from=<ISO date>
264
- &createdAt.to=<ISO date>
265
- &lastCheckedAt.from=<ISO date>
266
- &lastCheckedAt.to=<ISO date>
267
- ```
268
-
269
- ### Get policy totals
270
- ```
271
- GET /api/v1/compliance/feed/totals
272
- ?revenueSource=hometalk
273
- &network=facebook
274
- &search=
275
- &status=
276
- &integrationId=
277
- ```
278
-
279
- ### Export policy data (up to 25,000 rows)
280
- ```
281
- POST /api/v1/compliance/feed/export
282
- Body: same filters as the GET endpoint (JSON)
283
- ```
284
-
285
- ### Policy record fields returned:
286
-
287
- | Field | Notes |
288
- |---|---|
289
- | adId | Tarzo's internal Ad ID |
290
- | adStatus | Active/Paused status |
291
- | status | allowed, approved, manual-approved, in_review, pending, unknown |
292
- | campaignId | Tarzo campaign ID |
293
- | campaignName | Full Tarzo campaign name |
294
- | adAccountId | Facebook Ad Account ID |
295
- | reason | Policy rejection reason |
296
- | notes | Additional notes from reviewer |
297
- | adName | Name of the ad |
298
- | headline | Ad headline |
299
- | adsManagerLink | Link to Facebook Ads Manager |
300
- | lastCheck | Timestamp of last policy check |
301
- | createdAt | Record creation timestamp |
302
- | user | Which Tarzo user created this ad |
303
-
304
- ---
305
-
306
- ## 5. Tarzo API Reference — Performance / Reporting
307
-
308
- All endpoints return: revenue, spend (cost), conversions, feedProviderConversions, feedProviderCpa, networkClicks, impressions, networkRpc, feedProviderSearches, netProfit, roi, roas, ctr, cpc, cpm, rpc, cr, facebookRpc, results.
309
-
310
- ### All campaigns dashboard list
311
- ```
312
- GET /api/v1/facebook/hometalk/campaigns/report
313
- ?from=YYYY-MM-DD&to=YYYY-MM-DD&limit=25&offset=0&search=&sortBy=&status=&ruleHits=&lastActivity=
314
- ```
315
-
316
- ### Dashboard totals (all campaigns)
317
- ```
318
- GET /api/v1/facebook/hometalk/campaigns/report/totals
319
- ?from=YYYY-MM-DD&to=YYYY-MM-DD&search=&status=&ruleHits=&lastActivity=&bidStrategy=
320
- ```
321
-
322
- ### Single campaign performance by day
323
- ```
324
- GET /api/v1/facebook/hometalk/campaigns/report/campaign
325
- ?campaignId=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD
326
- ```
327
-
328
- ### Totals for a specific campaign
329
- ```
330
- GET /api/v1/facebook/hometalk/campaigns/report/totals
331
- ?campaignId=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD
332
- ```
333
-
334
- ### Ad set performance
335
- ```
336
- GET /api/v1/facebook/hometalk/adsets/report
337
- ?campaignIds[]=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD&search=
338
- ```
339
-
340
- ### Ad-level performance
341
- ```
342
- GET /api/v1/facebook/hometalk/ads/report
343
- ?campaignIds[]=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD&search=
344
- ```
345
-
346
- ### CSV export (max 25,000 rows)
347
- ```
348
- POST /api/v1/facebook/{entityType}s/export
349
- entityType: campaign | adset | ad
350
- Body: filter params as JSON
351
- ```
352
-
353
- ### Get single campaign details
354
- ```
355
- GET /api/v1/facebook/campaigns/campaign/<campaignId>
356
- ```
357
-
358
- ---
359
-
360
- ## 6. Skalio System Overview
361
-
362
- **Framework:** Next.js (React, Recoil state management, MUI components, Zod validation, Axios HTTP client)
363
- **Base URL:** https://www.skalio.io
364
- **Internal API base:** All frontend calls go to /api/... (Next.js API routes, server-side)
365
- **Auth:** Cookie-based session (Next.js middleware)
366
-
367
- ### Navigation structure:
368
- - Performance — main campaign performance table
369
- - Keywords Performance — keyword-level performance
370
- - Country Breakdown — geo performance
371
- - Create > Campaigns — general campaign creator
372
- - Create > Facebook Campaigns — main Facebook creator at /dashboard/facebook
373
- - Create > Articles — article management
374
- - Create > Campaign Creation Logs — same as /dashboard/campaign-logs
375
- - File Manager — media/creative assets
376
- - Rules Automation — automated rules engine
377
- - Research — research tools
378
- - Assets — asset management
379
- - Generate — AI generation tools
380
- - Tier2 Business Manager — multi-account management
381
-
382
- ### Campaign creation modes (3 tabs):
383
- - **Use Existing** — re-use an existing campaign structure (adds Campaign Name search at top)
384
- - **AI Campaign** — AI-assisted campaign creation
385
- - **Create New** — manual creation (the primary flow)
386
-
387
- ### Create New form fields:
388
- | Field | Notes |
389
- |---|---|
390
- | Platform | Facebook (fixed for this page) |
391
- | Media Buyer | Buyer code (e.g. "tsuf", "mark") |
392
- | Feed Provider | Dropdown from Feed table |
393
- | Vertical | Topic/vertical slug |
394
- | Country | Single or multi country, or empty for WW |
395
- | Language | ISO language code |
396
- | Notes | Free text, maps to freeText in campaign |
397
- | Ad Title | Maps to headlineText in ad |
398
- | Keywords | Main keyword + additional keywords |
399
- | Campaign Name Preview | Auto-generated: agrs-{feed}-fb-tp-{country}-{language}-{vertical}-{ddmm} |
400
-
401
- ---
402
-
403
- ## 7. Skalio Internal API Reference
404
-
405
- ### Campaign Management
406
- | Endpoint | Method | Description |
407
- |---|---|---|
408
- | /api/facebook/campaign/create | POST | Create campaign record in Skalio DB |
409
- | /api/facebook/campaign/read | GET | Read campaign by ID |
410
- | /api/facebook/campaign/readBatchCampaign | GET | Read multiple campaigns |
411
- | /api/facebook/campaign/readcampaignHirarchi | GET | Full hierarchy (campaign+adsets+ads) |
412
- | /api/facebook/campaign/update | PUT | Update campaign |
413
- | /api/facebook/campaign/delete | DELETE | Delete campaign |
414
- | /api/facebook/campaign/duplicate | POST | Duplicate campaign |
415
- | /api/facebook/campaign/publish | POST | Publish to Facebook |
416
- | /api/facebook/campaign/restore | POST | Restore deleted campaign |
417
-
418
- ### Ad Set Management
419
- | Endpoint | Method | Description |
420
- |---|---|---|
421
- | /api/facebook/adset/create | POST | Create ad set |
422
- | /api/facebook/adset/read | GET | Read ad set |
423
- | /api/facebook/adset/readAll | GET | Read all ad sets |
424
- | /api/facebook/adset/readAllFromCampaignId | GET | Read by campaign ID |
425
- | /api/facebook/adset/update | PUT | Update ad set |
426
- | /api/facebook/adset/delete | DELETE | Delete ad set |
427
- | /api/facebook/adset/duplicate | POST | Duplicate ad set |
428
- | /api/facebook/adset/publish | POST | Publish to Facebook |
429
- | /api/facebook/adset/restore | POST | Restore ad set |
430
-
431
- ### Ad Management
432
- | Endpoint | Method | Description |
433
- |---|---|---|
434
- | /api/facebook/ad/create | POST | Create ad |
435
- | /api/facebook/ad/read | GET | Read ad |
436
- | /api/facebook/ad/update | PUT | Update ad |
437
- | /api/facebook/ad/delete | DELETE | Delete ad |
438
- | /api/facebook/ad/duplicate | POST | Duplicate ad |
439
- | /api/facebook/ad/publish | POST | Publish to Facebook |
440
- | /api/newFiles/uploadToFacebook | POST | Upload media to Facebook |
441
- | /api/newFiles/getAdMedia | GET | Get media for single ad |
442
- | /api/newFiles/getAdsMedia | GET | Get media for multiple ads |
443
-
444
- ### Feed Campaign Lifecycle
445
- | Endpoint | Method | Description |
446
- |---|---|---|
447
- | /api/feedCampaign/publishDraftCampaign | POST | KEY: Publishes draft to feed provider. This is where Tarzo integration code goes. |
448
- | /api/feedCampaign/duplicate | POST | Duplicate a feed campaign |
449
-
450
- ### Performance
451
- | Endpoint | Method | Params |
452
- |---|---|---|
453
- | /api/performance/campaign/bydate | GET | page, rowsPerPage, sort, date_range, ad_account, campaign_name, ad_status |
454
- | /api/performance/campaign/byid | GET | feed, buyer, daterange, filterCampaignByIds, created_times, filterByDate, sortByIds, sortByDate, pageByIds, rowsPerPageByIds, adAccount, campaignName, createdTime, adStatus, country, vertical, roi_range, cost_range, ctr_range, rpc_range, cpa_range |
455
- | /api/performance/campaign/totals | GET | dates, ad_account, campaign_name, ad_status |
456
- | /api/performance/campaign/draftbyid | GET | Performance for draft campaigns |
457
-
458
- ### Static / Reference Data
459
- | Endpoint | Method | Description |
460
- |---|---|---|
461
- | /api/static/Feed/findAll | GET | All feed providers |
462
- | /api/static/Feed/create | POST | Create new feed provider |
463
- | /api/static/adAccount/findAll | GET | All ad accounts |
464
- | /api/static/adAccount/create | POST | Create ad account |
465
- | /api/static/adAccount/update | PUT | Update ad account |
466
- | /api/static/adAccount/bulk-create | POST | Bulk create ad accounts |
467
- | /api/static/Pages/findAll | GET | All Facebook pages |
468
- | /api/static/Pages/create | POST | Create page |
469
- | /api/static/Pages/update | PUT | Update page |
470
- | /api/static/Pages/bulk-create | POST | Bulk create pages |
471
- | /api/static/Buyers/findAll | GET | All media buyers |
472
- | /api/static/channel/findAll | GET | All channels |
473
- | /api/static/channel/create | POST | Create channel |
474
- | /api/static/channel/update | PUT | Update channel |
475
- | /api/static/channel/bulk-create | POST | Bulk create channels |
476
- | /api/configuration/getAdConfiguration | GET | Ad-level config. Params: campaignIds, adSetId, adIds |
477
- | /api/configuration/getAdsetsConfiguration | GET | Adset-level config. Params: campaignIds, adSetIds |
478
-
479
- ---
480
-
481
- ## 8. Field Mapping: Skalio → Tarzo
482
-
483
- ### Campaign Creation Form
484
-
485
- | Skalio Field | Skalio Value Example | Tarzo Field | Tarzo Value |
486
- |---|---|---|---|
487
- | platform | "Facebook" | network | "facebook" |
488
- | feed | "Tarzo - RSOC" | revenueSource | "hometalk" |
489
- | buyer | "tsuf" | Used in campaign name | Name segment |
490
- | vertical | "internet-providers" | hometalk.offer | "internet-providers" |
491
- | country | ["us"] or [] for WW | adSets[].countries | ["US"] or [] |
492
- | language | ["en"] | hometalk.language | "en" |
493
- | notes | "test campaign" | campaign.freeText | "test campaign" |
494
- | adTitle | "5G Internet Guide" | headlineText + in name | "[5G Internet Guide]" |
495
- | keywords[0] | "5g internet providers" | hometalk.keyword | "5g internet providers" |
496
- | keywords[1..n] | Additional keywords | hometalk.articleContent | Comma-separated string |
497
-
498
- ### Bid Strategy Mapping
499
-
500
- | Skalio Preset Label | Tarzo bidStrategy value |
501
- |---|---|
502
- | "Lowest Cost" / "LC" | LOWEST_COST_WITHOUT_CAP |
503
- | "Bid Cap" / "BC" | LOWEST_COST_WITH_BID_CAP |
504
- | "Cost Cap" / "CC" | COST_CAP |
505
- | "Target ROAS" / "TROAS" | LOWEST_COST_WITH_MIN_ROAS |
506
-
507
- ### Objective Mapping
508
-
509
- | Skalio Objective | Tarzo objective |
510
- |---|---|
511
- | Sales | OUTCOME_SALES |
512
- | Traffic | OUTCOME_TRAFFIC |
513
- | Leads | OUTCOME_LEADS |
514
- | Engagement | OUTCOME_ENGAGEMENT |
515
- | Awareness | OUTCOME_AWARENESS |
516
- | App Promotion | OUTCOME_APP_PROMOTION |
517
-
518
- ---
519
-
520
- ## 9. Campaign Naming Convention Mapping
521
-
522
- ### Skalio naming format:
523
- ```
524
- agrs-{feed}-fb-{buyer}-{country}-{language}-{vertical}-{ddmm}
525
- ```
526
- Example from live preview: agrs-{feed}-fb-tp-{country}-{language}-{vertical}-0604
527
-
528
- Where:
529
- - agrs = system prefix (always fixed)
530
- - {feed} = feed provider code (propose "tz" for Tarzo)
531
- - fb = platform
532
- - {buyer} = media buyer short code (e.g. "tsuf")
533
- - {country} = ISO code, "mix" (multi-country), or "ww" (worldwide)
534
- - {language} = language code
535
- - {vertical} = vertical slug
536
- - {ddmm} = campaign creation date
537
-
538
- ### Tarzo naming format:
539
- ```
540
- {country_prefix}-{language}-{platform}-{feed_code}-{buyer_code}-{account_last3}-{topic}-{channel_last3}-[{article_title}]-{user_last3}
541
- ```
542
- Example: ww-en-fb-tz-tsuf-147-internet-providers-464-[5G Internet Guide]-488
543
-
544
- Where:
545
- - ww-en = worldwide + English (0 countries = "ww-en", 1 country = country code, 2+ = "mc-en")
546
- - fb = facebook
547
- - tz = Tarzo feed code (fixed)
548
- - tsuf = buyer/account prefix
549
- - 147 = last 3 digits of Facebook ad account ID
550
- - internet-providers = topic slug
551
- - 464 = last 3 digits of article/channel ID (returned from initialize-article)
552
- - [5G Internet Guide] = article title in square brackets
553
- - 488 = last 3 digits of the Tarzo user ID (from /auth/iam)
554
-
555
- **Rule:** Use Tarzo's naming format in the campaign.name field sent to Tarzo. Store Skalio's own campaign name separately and link both via the Tarzo campaign ID.
556
-
557
- ---
558
-
559
- ## 10. New Skalio Feed Provider Entry
560
-
561
- To add Tarzo as a feed provider in Skalio:
562
-
563
- ```
564
- POST /api/static/Feed/create
565
- Body:
566
- {
567
- "feedName": "Tarzo - RSOC",
568
- "feedType": "rsoc",
569
- "platform": "Facebook",
570
- "feedCode": "tz",
571
- "revenueSource": "hometalk",
572
- "network": "facebook"
573
- }
574
- ```
575
-
576
- The Feed Provider dropdown is populated from GET /api/static/Feed/findAll — once the record is created, it appears automatically.
577
-
578
- When Tarzo is selected, the publishDraftCampaign handler must detect feedType: "rsoc" + revenueSource: "hometalk" and route to Tarzo's API.
579
-
580
- ---
581
-
582
- ## 11. Performance Data Fetch Strategy
583
-
584
- **Approach:** Skalio fetches cost/spend from Facebook (existing flow). Tarzo provides revenue and feed-provider metrics only.
585
-
586
- **Recommended sync:** Every 3 hours per campaign, or on-demand.
587
-
588
- **Fetch per campaign:**
589
- ```
590
- GET /api/v1/facebook/hometalk/campaigns/report/campaign
591
- ?campaignId=<tarzo_id>&from=<date>&to=<date>
592
- ```
593
-
594
- ### Performance Column Mapping
595
-
596
- | Skalio Column | Tarzo Field | Notes |
597
- |---|---|---|
598
- | Revenue | revenue | From Tarzo |
599
- | Cost | — | From Facebook (existing flow) |
600
- | Ad Clicks | networkClicks | Tarzo's "ad clicks" metric |
601
- | Conversions | feedProviderConversions | Feed-level conversions |
602
- | RPC | networkRpc | Feed provider RPC |
603
- | CPA | feedProviderCpa | Feed-level CPA |
604
- | TS RPC | networkRpc | Same field |
605
- | TS CPA | feedProviderCpa | Same field |
606
- | CTR % | ctr | From Tarzo |
607
- | CPC | cpc | From Tarzo |
608
- | CR % | cr | Conversion rate |
609
- | Net Profit | revenue - cost | Calculated |
610
- | ROI | (revenue - cost) / cost * 100 | Calculated |
611
-
612
- ---
613
-
614
- ## 12. Policy Center Integration Strategy
615
-
616
- **Approach:** Daily sync job fetches policy data from Tarzo and stores in Skalio campaign_logs table, keyed by Tarzo adId and campaignId.
617
-
618
- **Fetch:**
619
- ```
620
- GET /api/v1/compliance/feed
621
- ?revenueSource=hometalk&network=facebook&offset=0&limit=100
622
- (paginate until all records fetched)
623
- ```
624
-
625
- ### Mapping to Skalio Campaign Logs
626
-
627
- | Skalio Column | Tarzo Policy Field |
628
- |---|---|
629
- | Campaign Name | campaignName |
630
- | Status | adStatus (Active/Paused) |
631
- | Policy Status | status (allowed, in_review, pending, etc.) |
632
- | Account | adAccountId |
633
- | Feed | "Tarzo - RSOC" (hardcoded) |
634
- | Ad | adId |
635
- | Campaign Details | reason + notes |
636
- | User | user |
637
-
638
- Match records to Skalio campaigns using the campaignId stored at creation time.
639
-
640
- ---
641
-
642
- ## 13. Ad Accounts & Facebook Pages Sync
643
-
644
- **Fetch Tarzo ad accounts:**
645
- ```
646
- GET /api/v1/facebook/accounts?revenueSource=hometalk
647
- ```
648
- Returns accounts with id (act_XXXXXXX format) and display name (e.g. "D-1").
649
-
650
- **Store in Skalio:**
651
- ```
652
- POST /api/static/adAccount/bulk-create
653
- Body: { accounts: [{accountId: "act_123...", name: "D-1", feedProvider: "tarzo"}, ...] }
654
- ```
655
-
656
- **Facebook Pages:** Page IDs are standard Facebook page IDs. Use Skalio's existing page list (GET /api/static/Pages/findAll). When Tarzo is selected as feed provider, show the page selector — the same page IDs work in both systems.
657
-
658
- ---
659
-
660
- ## 14. Implementation Checklist
661
-
662
- ### Backend
663
-
664
- - [ ] Create tarzo.service.ts with: base URL (https://prod.tarzo.click/api/v1), token management (read/refresh on every response), and all endpoint wrappers from sections 3–5
665
- - [ ] Add Tarzo JWT token to secure env/secrets storage; implement auto-refresh logic on every response
666
- - [ ] Create "Tarzo - RSOC" feed record via POST /api/static/Feed/create
667
- - [ ] Extend /api/feedCampaign/publishDraftCampaign — add Tarzo branch: detect revenueSource "hometalk", call initialize-article first, then create campaign, save returned Tarzo campaign ID against Skalio campaign ID
668
- - [ ] Sync Tarzo ad accounts via GET /api/v1/facebook/accounts?revenueSource=hometalk → store with feedProvider: "tarzo" tag
669
- - [ ] Extend /api/performance/campaign/byid — when feed = "tarzo-rsoc", fetch revenue metrics from Tarzo and merge with Facebook cost data
670
- - [ ] Create policy sync cron job: call GET /api/v1/compliance/feed paginated → write to campaign_logs table
671
- - [ ] Fetch and cache Tarzo domain list (GET /api/v1/domain-management?revenueSource=hometalk)
672
- - [ ] Enforce validation: block HOUSING/EMPLOYMENT/FINANCIAL special categories when countries is empty (Worldwide)
673
- - [ ] Add tarzo_campaign_id column to Skalio campaigns table
674
-
675
- ### Frontend
676
-
677
- - [ ] "Tarzo - RSOC" will appear in Feed Provider dropdown automatically once DB record is created
678
- - [ ] Show Tarzo-specific fields when Tarzo is selected: Domain selector, Article Content Query (max 80 chars, English), Terms (optional)
679
- - [ ] Add Facebook Page selector when Tarzo is feed provider (required for ad creation)
680
- - [ ] Show only Tarzo-tagged ad accounts when Tarzo is feed
681
- - [ ] Show Tarzo channel availability count (from channel-management/available) before submit
682
- - [ ] Update Campaign Name Preview to show Tarzo naming format alongside Skalio format
683
- - [ ] Map Tarzo policy statuses in Campaign Logs: allowed = green, in_review = yellow, pending = orange, unknown = grey
684
- - [ ] Add "Tarzo" filter option in Performance page Feed dropdown
685
-
686
- ### Still to confirm
687
-
688
- 1. **Creative upload to Tarzo** — The upload endpoint is likely POST /api/v1/creatives/library/save/v2 (multipart). Confirm exact field names by capturing a network request when clicking "Upload Media" in the Tarzo Creatives Library. Recommended approach: pre-upload creatives via Tarzo UI, store creative IDs in Skalio, expose a Tarzo Creative selector in the form.
689
- 2. **Tarzo service account** — Confirm which Tarzo account to use as the service account for the integration.
690
- 3. **tarzo_campaign_id storage** — Confirm schema changes to store Tarzo campaign ID linked to Skalio campaign ID.
691
- 4. **Keywords sync** — Planned for a later phase. Tarzo has keyword-level data available via the ads/report endpoint.
1
+ # Tarzo ↔ Skalio Integration — Full Technical Documentation
2
+
3
+ ## 🎯 Goal & Introduction
4
+
5
+ The goal of this task is to integrate **Tarzo** (platform.tarzo.io) as a new feed provider inside our **Skalio** dashboard, allowing us to launch Facebook campaigns directly from Skalio into Tarzo without using any official API (since Tarzo does not have one). Instead, we reverse-engineered Tarzo's internal API endpoints and authentication mechanism to operate as a normal logged-in user.
6
+
7
+ **What we want to achieve:**
8
+ 1. **Campaign Creation** — Create Tarzo campaigns from Skalio the same way we do for other feed providers (Predicto, Mine, Compado, etc.), using the same Skalio form, naming conventions, and presets.
9
+ 2. **Policy Center Sync** — Fetch policy review statuses (approved, in_review, pending, rejected reasons, notes) from Tarzo and reflect them in Skalio's Campaign Logs page.
10
+ 3. **Performance Reporting** — Fetch revenue, ad clicks, conversions, and other feed-provider metrics from Tarzo by campaign ID, and merge them with the spend data we already pull from Facebook — exactly as we do for other RSOC feeds.
11
+ 4. **Ad Account & Page Sync** — Pull the list of Tarzo ad accounts and Facebook pages into Skalio so they are selectable when creating a Tarzo campaign.
12
+
13
+ **Technical approach:** All communication is server-to-server. The Tarzo user's JWT token (extracted from localStorage on login) is stored securely on our backend. Every API call to Tarzo uses this token in the `Authorization` header. The token auto-refreshes on every response. No browser scraping is needed — all endpoints are standard JSON REST calls.
14
+
15
+ > **Important:** When making requests to Tarzo's system, do not reference our system name, do not mention "API integration", and behave exactly as a regular logged-in Tarzo user would.
16
+
17
+ ---
18
+
19
+ ## Table of Contents
20
+ 1. Architecture Overview
21
+ 2. Tarzo Authentication
22
+ 3. Tarzo API Reference — Campaign Creation
23
+ 4. Tarzo API Reference — Policy Center
24
+ 5. Tarzo API Reference — Performance / Reporting
25
+ 6. Skalio System Overview
26
+ 7. Skalio Internal API Reference
27
+ 8. Field Mapping: Skalio → Tarzo
28
+ 9. Campaign Naming Convention Mapping
29
+ 10. New Skalio Feed Provider Entry ("Tarzo - RSOC")
30
+ 11. Performance Data Fetch Strategy
31
+ 12. Policy Center Integration Strategy
32
+ 13. Ad Accounts & Facebook Pages Sync
33
+ 14. Implementation Checklist
34
+
35
+ ---
36
+
37
+ ## 1. Architecture Overview
38
+
39
+ The integration works as follows: Skalio acts as the orchestrator. When a user creates a campaign in Skalio with "Tarzo - RSOC" selected as the feed provider, Skalio's backend must:
40
+
41
+ 1. Use the Tarzo user's JWT token (stored in a secure backend config, not exposed to the frontend) to authenticate against Tarzo's internal API at `https://prod.tarzo.click/api/v1`
42
+ 2. Pre-check channel availability via `GET /api/v1/channel-management/available`
43
+ 3. POST a campaign payload to `POST /api/v1/facebook/creator/campaign/create`
44
+ 4. Store the returned Tarzo campaign ID mapped to the Skalio campaign ID
45
+ 5. Periodically sync policy status via `GET /api/v1/compliance/feed`
46
+ 6. Periodically sync performance data via `GET /api/v1/facebook/hometalk/campaigns/report/campaign?campaignId=...`
47
+
48
+ No browser-side scraping is needed. All communication is server-to-server using the stored JWT token.
49
+
50
+ ---
51
+
52
+ ## 2. Tarzo Authentication
53
+
54
+ **Token source:** The JWT is stored in Tarzo's browser localStorage under the key "authorization". For your integration, a Tarzo account must be set up as a service account, and the token should be extracted once (at login time) and stored securely on your backend. The token auto-refreshes: every response from Tarzo's API includes a refreshed authorization header — your backend must update the stored token on every response.
55
+
56
+ **How to authenticate every request:**
57
+ ```
58
+ Authorization: <jwt_token>
59
+ Content-Type: application/json
60
+ Accept: application/json
61
+ ```
62
+
63
+ **All requests go to:** `https://prod.tarzo.click/api/v1/<endpoint>`
64
+
65
+ **Session validation:** `GET /api/v1/auth/iam` — call this to validate the token and get user info (firstName, id). These are used in campaign naming.
66
+
67
+ **Token refresh logic:**
68
+ - On each response, check if an `authorization` header is returned
69
+ - If yes, update the stored token with the new value
70
+ - If a `deauthorization` header is returned, the session has expired — re-login required
71
+
72
+ ---
73
+
74
+ ## 3. Tarzo API Reference — Campaign Creation
75
+
76
+ ### Pre-flight Checks
77
+
78
+ **Check available Tarzo channels:**
79
+ ```
80
+ GET /api/v1/channel-management/available?revenueSource=hometalk
81
+ GET /api/v1/channel-management/available?revenueSource=hometalk&integrationId=<integration_id>
82
+ ```
83
+ Returns remaining channel count. Abort if zero.
84
+
85
+ **Get ad accounts:**
86
+ ```
87
+ GET /api/v1/facebook/accounts?revenueSource=hometalk
88
+ ```
89
+ Returns the list of ad account objects. Each has an id and a display code (e.g. "D-1", "R-1920").
90
+
91
+ **Get integrations:**
92
+ ```
93
+ GET /api/v1/integration-management?revenueSource=hometalk&enabled=true&network=facebook
94
+ ```
95
+ Returns integration objects including integration ID (needed for domain filtering and the campaign payload).
96
+
97
+ **Get domains:**
98
+ ```
99
+ GET /api/v1/domain-management?revenueSource=hometalk&network=facebook
100
+ GET /api/v1/domain-management?revenueSource=hometalk&integrationId=<id>
101
+ ```
102
+ Returns available Tarzo domains (e.g. https://www.upgradedhome.com/dcg).
103
+
104
+ **Get topics / offers:**
105
+ ```
106
+ GET /api/v1/backoffice/offers
107
+ ```
108
+ Returns all topics/verticals (e.g. "internet-providers", "roof-replacement").
109
+
110
+ ### Initialize Article (Hometalk)
111
+
112
+ This must be done before campaign creation. It reserves a Tarzo channel and returns an article ID.
113
+
114
+ ```
115
+ POST /api/v1/hometalk/assets/initialize-article
116
+ Content-Type: application/json
117
+
118
+ {
119
+ "offer": "internet-providers",
120
+ "domain": "https://www.upgradedhome.com/dcg",
121
+ "language": "en",
122
+ "keyword": "<main keyword, max 80 chars, English only>",
123
+ "articleContent": "<optional comma-separated extra keywords>",
124
+ "terms": []
125
+ }
126
+ ```
127
+ Returns: An article/channel ID used in the campaign creation URL.
128
+
129
+ ### Create Campaign
130
+
131
+ ```
132
+ POST /api/v1/facebook/creator/campaign/create/<articleId>
133
+ Content-Type: application/json
134
+
135
+ {
136
+ "campaigns": [
137
+ {
138
+ "campaign": {
139
+ "name": "ww-en-fb-tz-tsuf-147-internet-providers-464-[5G Internet Guide]-488",
140
+ "freeText": "",
141
+ "accountId": "act_1234567890",
142
+ "objective": "OUTCOME_SALES",
143
+ "campaignType": "website",
144
+ "specialAdCategories": [],
145
+ "budget": 5,
146
+ "budgetType": "daily",
147
+ "isAdvantagePlus": false
148
+ },
149
+ "adSets": [
150
+ {
151
+ "budget": 5,
152
+ "countries": [],
153
+ "regions": [],
154
+ "language": "en",
155
+ "device": "",
156
+ "platforms": ["facebook", "instagram"],
157
+ "placements": [],
158
+ "os": "",
159
+ "pixelId": "<facebook_pixel_id>",
160
+ "bidStrategy": "LOWEST_COST_WITHOUT_CAP",
161
+ "bidAmount": "",
162
+ "pixelEvent": "PURCHASE",
163
+ "optimizationGoal": "OFFSITE_CONVERSIONS",
164
+ "adType": "SINGLE",
165
+ "startTime": null,
166
+ "attributionSpec": "",
167
+ "ageTargeting": { "min": 18, "max": 65 },
168
+ "genders": [],
169
+ "ads": [
170
+ {
171
+ "status": "ACTIVE",
172
+ "targetUrl": "https://...",
173
+ "urlTag": "",
174
+ "displayUrl": "",
175
+ "pageId": "<facebook_page_id>",
176
+ "pageCredentials": false,
177
+ "primaryText": "...",
178
+ "headlineText": "...",
179
+ "description": "",
180
+ "cta": "LEARN_MORE",
181
+ "selectedCreatives": ["<creative_id>"],
182
+ "translationLanguage": ""
183
+ }
184
+ ]
185
+ }
186
+ ],
187
+ "hometalk": {
188
+ "offer": "internet-providers",
189
+ "keyword": "<main keyword>",
190
+ "articleContent": "",
191
+ "domain": "https://www.upgradedhome.com/dcg",
192
+ "language": "en",
193
+ "terms": []
194
+ }
195
+ }
196
+ ]
197
+ }
198
+ ```
199
+
200
+ **If article was not pre-initialized:** Use `POST /api/v1/facebook/creator/campaign/create` (no trailing ID).
201
+
202
+ **Duplicate an existing campaign:**
203
+ ```
204
+ POST /api/v1/facebook/creator/campaign/duplicate/<baseCampaignId>
205
+ Body: { "campaigns": [...] }
206
+ ```
207
+
208
+ ### Tarzo Campaign Field Reference
209
+
210
+ **Campaign-level fields:**
211
+
212
+ | Field | Type | Allowed Values |
213
+ |---|---|---|
214
+ | objective | enum | OUTCOME_SALES, OUTCOME_TRAFFIC, OUTCOME_LEADS, OUTCOME_ENGAGEMENT, OUTCOME_AWARENESS, OUTCOME_APP_PROMOTION |
215
+ | campaignType | enum | website, app, website-and-app, messaging-app, calls |
216
+ | specialAdCategories | array | [], ["HOUSING"], ["EMPLOYMENT"], ["FINANCIAL_PRODUCTS_SERVICES"] |
217
+ | budgetType | enum | daily, lifetime |
218
+ | budget | number | Any positive number |
219
+ | isAdvantagePlus | boolean | false (default) |
220
+
221
+ **Ad Set-level fields:**
222
+
223
+ | Field | Type | Allowed Values / Notes |
224
+ |---|---|---|
225
+ | bidStrategy | enum | LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS |
226
+ | optimizationGoal | enum | OFFSITE_CONVERSIONS (default), LINK_CLICKS, IMPRESSIONS, LANDING_PAGE_VIEWS |
227
+ | platforms | array | facebook, instagram, messenger, audience_network |
228
+ | adType | enum | SINGLE, FLEXIBLE — NO Carousel support |
229
+ | countries | array | ISO country codes, or empty array for Worldwide |
230
+ | genders | array | ["male"], ["female"], or [] for all |
231
+ | ageTargeting | object | { "min": 18, "max": 65 } |
232
+ | device | string | "desktop", "mobile", or "" for all |
233
+ | os | string | OS filter string or empty |
234
+ | pixelEvent | enum | PURCHASE (default) |
235
+
236
+ **Ad-level fields:**
237
+
238
+ | Field | Type | Notes |
239
+ |---|---|---|
240
+ | cta | enum | LEARN_MORE, WATCH_MORE, WATCH_VIDEO, SHOP_NOW, SIGN_UP, GET_OFFER, APPLY_NOW, GET_QUOTE, SEE_MORE, BOOK_NOW, CONTACT_US, CALLS |
241
+ | headlineText | string | Min 10, max 100 chars |
242
+ | description | string | Optional, min 20 max 250 chars |
243
+ | selectedCreatives | array | Creative IDs from Tarzo's library |
244
+
245
+ **Special categories constraint:** Cannot use HOUSING, EMPLOYMENT, or FINANCIAL_PRODUCTS_SERVICES when targeting Worldwide (empty countries). Enforce this in Skalio before sending.
246
+
247
+ ---
248
+
249
+ ## 4. Tarzo API Reference — Policy Center
250
+
251
+ ### Fetch policy data (paginated)
252
+ ```
253
+ GET /api/v1/compliance/feed
254
+ ?revenueSource=hometalk
255
+ &network=facebook
256
+ &search=
257
+ &status=<allowed|in_review|pending|unknown>
258
+ &integrationId=
259
+ &sortBy=
260
+ &offset=0
261
+ &limit=25
262
+ &users[]=<userId>
263
+ &createdAt.from=<ISO date>
264
+ &createdAt.to=<ISO date>
265
+ &lastCheckedAt.from=<ISO date>
266
+ &lastCheckedAt.to=<ISO date>
267
+ ```
268
+
269
+ ### Get policy totals
270
+ ```
271
+ GET /api/v1/compliance/feed/totals
272
+ ?revenueSource=hometalk
273
+ &network=facebook
274
+ &search=
275
+ &status=
276
+ &integrationId=
277
+ ```
278
+
279
+ ### Export policy data (up to 25,000 rows)
280
+ ```
281
+ POST /api/v1/compliance/feed/export
282
+ Body: same filters as the GET endpoint (JSON)
283
+ ```
284
+
285
+ ### Policy record fields returned:
286
+
287
+ | Field | Notes |
288
+ |---|---|
289
+ | adId | Tarzo's internal Ad ID |
290
+ | adStatus | Active/Paused status |
291
+ | status | allowed, approved, manual-approved, in_review, pending, unknown |
292
+ | campaignId | Tarzo campaign ID |
293
+ | campaignName | Full Tarzo campaign name |
294
+ | adAccountId | Facebook Ad Account ID |
295
+ | reason | Policy rejection reason |
296
+ | notes | Additional notes from reviewer |
297
+ | adName | Name of the ad |
298
+ | headline | Ad headline |
299
+ | adsManagerLink | Link to Facebook Ads Manager |
300
+ | lastCheck | Timestamp of last policy check |
301
+ | createdAt | Record creation timestamp |
302
+ | user | Which Tarzo user created this ad |
303
+
304
+ ---
305
+
306
+ ## 5. Tarzo API Reference — Performance / Reporting
307
+
308
+ All endpoints return: revenue, spend (cost), conversions, feedProviderConversions, feedProviderCpa, networkClicks, impressions, networkRpc, feedProviderSearches, netProfit, roi, roas, ctr, cpc, cpm, rpc, cr, facebookRpc, results.
309
+
310
+ ### All campaigns dashboard list
311
+ ```
312
+ GET /api/v1/facebook/hometalk/campaigns/report
313
+ ?from=YYYY-MM-DD&to=YYYY-MM-DD&limit=25&offset=0&search=&sortBy=&status=&ruleHits=&lastActivity=
314
+ ```
315
+
316
+ ### Dashboard totals (all campaigns)
317
+ ```
318
+ GET /api/v1/facebook/hometalk/campaigns/report/totals
319
+ ?from=YYYY-MM-DD&to=YYYY-MM-DD&search=&status=&ruleHits=&lastActivity=&bidStrategy=
320
+ ```
321
+
322
+ ### Single campaign performance by day
323
+ ```
324
+ GET /api/v1/facebook/hometalk/campaigns/report/campaign
325
+ ?campaignId=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD
326
+ ```
327
+
328
+ ### Totals for a specific campaign
329
+ ```
330
+ GET /api/v1/facebook/hometalk/campaigns/report/totals
331
+ ?campaignId=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD
332
+ ```
333
+
334
+ ### Ad set performance
335
+ ```
336
+ GET /api/v1/facebook/hometalk/adsets/report
337
+ ?campaignIds[]=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD&search=
338
+ ```
339
+
340
+ ### Ad-level performance
341
+ ```
342
+ GET /api/v1/facebook/hometalk/ads/report
343
+ ?campaignIds[]=<tarzo_campaign_id>&from=YYYY-MM-DD&to=YYYY-MM-DD&search=
344
+ ```
345
+
346
+ ### CSV export (max 25,000 rows)
347
+ ```
348
+ POST /api/v1/facebook/{entityType}s/export
349
+ entityType: campaign | adset | ad
350
+ Body: filter params as JSON
351
+ ```
352
+
353
+ ### Get single campaign details
354
+ ```
355
+ GET /api/v1/facebook/campaigns/campaign/<campaignId>
356
+ ```
357
+
358
+ ---
359
+
360
+ ## 6. Skalio System Overview
361
+
362
+ **Framework:** Next.js (React, Recoil state management, MUI components, Zod validation, Axios HTTP client)
363
+ **Base URL:** https://www.skalio.io
364
+ **Internal API base:** All frontend calls go to /api/... (Next.js API routes, server-side)
365
+ **Auth:** Cookie-based session (Next.js middleware)
366
+
367
+ ### Navigation structure:
368
+ - Performance — main campaign performance table
369
+ - Keywords Performance — keyword-level performance
370
+ - Country Breakdown — geo performance
371
+ - Create > Campaigns — general campaign creator
372
+ - Create > Facebook Campaigns — main Facebook creator at /dashboard/facebook
373
+ - Create > Articles — article management
374
+ - Create > Campaign Creation Logs — same as /dashboard/campaign-logs
375
+ - File Manager — media/creative assets
376
+ - Rules Automation — automated rules engine
377
+ - Research — research tools
378
+ - Assets — asset management
379
+ - Generate — AI generation tools
380
+ - Tier2 Business Manager — multi-account management
381
+
382
+ ### Campaign creation modes (3 tabs):
383
+ - **Use Existing** — re-use an existing campaign structure (adds Campaign Name search at top)
384
+ - **AI Campaign** — AI-assisted campaign creation
385
+ - **Create New** — manual creation (the primary flow)
386
+
387
+ ### Create New form fields:
388
+ | Field | Notes |
389
+ |---|---|
390
+ | Platform | Facebook (fixed for this page) |
391
+ | Media Buyer | Buyer code (e.g. "tsuf", "mark") |
392
+ | Feed Provider | Dropdown from Feed table |
393
+ | Vertical | Topic/vertical slug |
394
+ | Country | Single or multi country, or empty for WW |
395
+ | Language | ISO language code |
396
+ | Notes | Free text, maps to freeText in campaign |
397
+ | Ad Title | Maps to headlineText in ad |
398
+ | Keywords | Main keyword + additional keywords |
399
+ | Campaign Name Preview | Auto-generated: agrs-{feed}-fb-tp-{country}-{language}-{vertical}-{ddmm} |
400
+
401
+ ---
402
+
403
+ ## 7. Skalio Internal API Reference
404
+
405
+ ### Campaign Management
406
+ | Endpoint | Method | Description |
407
+ |---|---|---|
408
+ | /api/facebook/campaign/create | POST | Create campaign record in Skalio DB |
409
+ | /api/facebook/campaign/read | GET | Read campaign by ID |
410
+ | /api/facebook/campaign/readBatchCampaign | GET | Read multiple campaigns |
411
+ | /api/facebook/campaign/readcampaignHirarchi | GET | Full hierarchy (campaign+adsets+ads) |
412
+ | /api/facebook/campaign/update | PUT | Update campaign |
413
+ | /api/facebook/campaign/delete | DELETE | Delete campaign |
414
+ | /api/facebook/campaign/duplicate | POST | Duplicate campaign |
415
+ | /api/facebook/campaign/publish | POST | Publish to Facebook |
416
+ | /api/facebook/campaign/restore | POST | Restore deleted campaign |
417
+
418
+ ### Ad Set Management
419
+ | Endpoint | Method | Description |
420
+ |---|---|---|
421
+ | /api/facebook/adset/create | POST | Create ad set |
422
+ | /api/facebook/adset/read | GET | Read ad set |
423
+ | /api/facebook/adset/readAll | GET | Read all ad sets |
424
+ | /api/facebook/adset/readAllFromCampaignId | GET | Read by campaign ID |
425
+ | /api/facebook/adset/update | PUT | Update ad set |
426
+ | /api/facebook/adset/delete | DELETE | Delete ad set |
427
+ | /api/facebook/adset/duplicate | POST | Duplicate ad set |
428
+ | /api/facebook/adset/publish | POST | Publish to Facebook |
429
+ | /api/facebook/adset/restore | POST | Restore ad set |
430
+
431
+ ### Ad Management
432
+ | Endpoint | Method | Description |
433
+ |---|---|---|
434
+ | /api/facebook/ad/create | POST | Create ad |
435
+ | /api/facebook/ad/read | GET | Read ad |
436
+ | /api/facebook/ad/update | PUT | Update ad |
437
+ | /api/facebook/ad/delete | DELETE | Delete ad |
438
+ | /api/facebook/ad/duplicate | POST | Duplicate ad |
439
+ | /api/facebook/ad/publish | POST | Publish to Facebook |
440
+ | /api/newFiles/uploadToFacebook | POST | Upload media to Facebook |
441
+ | /api/newFiles/getAdMedia | GET | Get media for single ad |
442
+ | /api/newFiles/getAdsMedia | GET | Get media for multiple ads |
443
+
444
+ ### Feed Campaign Lifecycle
445
+ | Endpoint | Method | Description |
446
+ |---|---|---|
447
+ | /api/feedCampaign/publishDraftCampaign | POST | KEY: Publishes draft to feed provider. This is where Tarzo integration code goes. |
448
+ | /api/feedCampaign/duplicate | POST | Duplicate a feed campaign |
449
+
450
+ ### Performance
451
+ | Endpoint | Method | Params |
452
+ |---|---|---|
453
+ | /api/performance/campaign/bydate | GET | page, rowsPerPage, sort, date_range, ad_account, campaign_name, ad_status |
454
+ | /api/performance/campaign/byid | GET | feed, buyer, daterange, filterCampaignByIds, created_times, filterByDate, sortByIds, sortByDate, pageByIds, rowsPerPageByIds, adAccount, campaignName, createdTime, adStatus, country, vertical, roi_range, cost_range, ctr_range, rpc_range, cpa_range |
455
+ | /api/performance/campaign/totals | GET | dates, ad_account, campaign_name, ad_status |
456
+ | /api/performance/campaign/draftbyid | GET | Performance for draft campaigns |
457
+
458
+ ### Static / Reference Data
459
+ | Endpoint | Method | Description |
460
+ |---|---|---|
461
+ | /api/static/Feed/findAll | GET | All feed providers |
462
+ | /api/static/Feed/create | POST | Create new feed provider |
463
+ | /api/static/adAccount/findAll | GET | All ad accounts |
464
+ | /api/static/adAccount/create | POST | Create ad account |
465
+ | /api/static/adAccount/update | PUT | Update ad account |
466
+ | /api/static/adAccount/bulk-create | POST | Bulk create ad accounts |
467
+ | /api/static/Pages/findAll | GET | All Facebook pages |
468
+ | /api/static/Pages/create | POST | Create page |
469
+ | /api/static/Pages/update | PUT | Update page |
470
+ | /api/static/Pages/bulk-create | POST | Bulk create pages |
471
+ | /api/static/Buyers/findAll | GET | All media buyers |
472
+ | /api/static/channel/findAll | GET | All channels |
473
+ | /api/static/channel/create | POST | Create channel |
474
+ | /api/static/channel/update | PUT | Update channel |
475
+ | /api/static/channel/bulk-create | POST | Bulk create channels |
476
+ | /api/configuration/getAdConfiguration | GET | Ad-level config. Params: campaignIds, adSetId, adIds |
477
+ | /api/configuration/getAdsetsConfiguration | GET | Adset-level config. Params: campaignIds, adSetIds |
478
+
479
+ ---
480
+
481
+ ## 8. Field Mapping: Skalio → Tarzo
482
+
483
+ ### Campaign Creation Form
484
+
485
+ | Skalio Field | Skalio Value Example | Tarzo Field | Tarzo Value |
486
+ |---|---|---|---|
487
+ | platform | "Facebook" | network | "facebook" |
488
+ | feed | "Tarzo - RSOC" | revenueSource | "hometalk" |
489
+ | buyer | "tsuf" | Used in campaign name | Name segment |
490
+ | vertical | "internet-providers" | hometalk.offer | "internet-providers" |
491
+ | country | ["us"] or [] for WW | adSets[].countries | ["US"] or [] |
492
+ | language | ["en"] | hometalk.language | "en" |
493
+ | notes | "test campaign" | campaign.freeText | "test campaign" |
494
+ | adTitle | "5G Internet Guide" | headlineText + in name | "[5G Internet Guide]" |
495
+ | keywords[0] | "5g internet providers" | hometalk.keyword | "5g internet providers" |
496
+ | keywords[1..n] | Additional keywords | hometalk.articleContent | Comma-separated string |
497
+
498
+ ### Bid Strategy Mapping
499
+
500
+ | Skalio Preset Label | Tarzo bidStrategy value |
501
+ |---|---|
502
+ | "Lowest Cost" / "LC" | LOWEST_COST_WITHOUT_CAP |
503
+ | "Bid Cap" / "BC" | LOWEST_COST_WITH_BID_CAP |
504
+ | "Cost Cap" / "CC" | COST_CAP |
505
+ | "Target ROAS" / "TROAS" | LOWEST_COST_WITH_MIN_ROAS |
506
+
507
+ ### Objective Mapping
508
+
509
+ | Skalio Objective | Tarzo objective |
510
+ |---|---|
511
+ | Sales | OUTCOME_SALES |
512
+ | Traffic | OUTCOME_TRAFFIC |
513
+ | Leads | OUTCOME_LEADS |
514
+ | Engagement | OUTCOME_ENGAGEMENT |
515
+ | Awareness | OUTCOME_AWARENESS |
516
+ | App Promotion | OUTCOME_APP_PROMOTION |
517
+
518
+ ---
519
+
520
+ ## 9. Campaign Naming Convention Mapping
521
+
522
+ ### Skalio naming format:
523
+ ```
524
+ agrs-{feed}-fb-{buyer}-{country}-{language}-{vertical}-{ddmm}
525
+ ```
526
+ Example from live preview: agrs-{feed}-fb-tp-{country}-{language}-{vertical}-0604
527
+
528
+ Where:
529
+ - agrs = system prefix (always fixed)
530
+ - {feed} = feed provider code (propose "tz" for Tarzo)
531
+ - fb = platform
532
+ - {buyer} = media buyer short code (e.g. "tsuf")
533
+ - {country} = ISO code, "mix" (multi-country), or "ww" (worldwide)
534
+ - {language} = language code
535
+ - {vertical} = vertical slug
536
+ - {ddmm} = campaign creation date
537
+
538
+ ### Tarzo naming format:
539
+ ```
540
+ {country_prefix}-{language}-{platform}-{feed_code}-{buyer_code}-{account_last3}-{topic}-{channel_last3}-[{article_title}]-{user_last3}
541
+ ```
542
+ Example: ww-en-fb-tz-tsuf-147-internet-providers-464-[5G Internet Guide]-488
543
+
544
+ Where:
545
+ - ww-en = worldwide + English (0 countries = "ww-en", 1 country = country code, 2+ = "mc-en")
546
+ - fb = facebook
547
+ - tz = Tarzo feed code (fixed)
548
+ - tsuf = buyer/account prefix
549
+ - 147 = last 3 digits of Facebook ad account ID
550
+ - internet-providers = topic slug
551
+ - 464 = last 3 digits of article/channel ID (returned from initialize-article)
552
+ - [5G Internet Guide] = article title in square brackets
553
+ - 488 = last 3 digits of the Tarzo user ID (from /auth/iam)
554
+
555
+ **Rule:** Use Tarzo's naming format in the campaign.name field sent to Tarzo. Store Skalio's own campaign name separately and link both via the Tarzo campaign ID.
556
+
557
+ ---
558
+
559
+ ## 10. New Skalio Feed Provider Entry
560
+
561
+ To add Tarzo as a feed provider in Skalio:
562
+
563
+ ```
564
+ POST /api/static/Feed/create
565
+ Body:
566
+ {
567
+ "feedName": "Tarzo - RSOC",
568
+ "feedType": "rsoc",
569
+ "platform": "Facebook",
570
+ "feedCode": "tz",
571
+ "revenueSource": "hometalk",
572
+ "network": "facebook"
573
+ }
574
+ ```
575
+
576
+ The Feed Provider dropdown is populated from GET /api/static/Feed/findAll — once the record is created, it appears automatically.
577
+
578
+ When Tarzo is selected, the publishDraftCampaign handler must detect feedType: "rsoc" + revenueSource: "hometalk" and route to Tarzo's API.
579
+
580
+ ---
581
+
582
+ ## 11. Performance Data Fetch Strategy
583
+
584
+ **Approach:** Skalio fetches cost/spend from Facebook (existing flow). Tarzo provides revenue and feed-provider metrics only.
585
+
586
+ **Recommended sync:** Every 3 hours per campaign, or on-demand.
587
+
588
+ **Fetch per campaign:**
589
+ ```
590
+ GET /api/v1/facebook/hometalk/campaigns/report/campaign
591
+ ?campaignId=<tarzo_id>&from=<date>&to=<date>
592
+ ```
593
+
594
+ ### Performance Column Mapping
595
+
596
+ | Skalio Column | Tarzo Field | Notes |
597
+ |---|---|---|
598
+ | Revenue | revenue | From Tarzo |
599
+ | Cost | — | From Facebook (existing flow) |
600
+ | Ad Clicks | networkClicks | Tarzo's "ad clicks" metric |
601
+ | Conversions | feedProviderConversions | Feed-level conversions |
602
+ | RPC | networkRpc | Feed provider RPC |
603
+ | CPA | feedProviderCpa | Feed-level CPA |
604
+ | TS RPC | networkRpc | Same field |
605
+ | TS CPA | feedProviderCpa | Same field |
606
+ | CTR % | ctr | From Tarzo |
607
+ | CPC | cpc | From Tarzo |
608
+ | CR % | cr | Conversion rate |
609
+ | Net Profit | revenue - cost | Calculated |
610
+ | ROI | (revenue - cost) / cost * 100 | Calculated |
611
+
612
+ ---
613
+
614
+ ## 12. Policy Center Integration Strategy
615
+
616
+ **Approach:** Daily sync job fetches policy data from Tarzo and stores in Skalio campaign_logs table, keyed by Tarzo adId and campaignId.
617
+
618
+ **Fetch:**
619
+ ```
620
+ GET /api/v1/compliance/feed
621
+ ?revenueSource=hometalk&network=facebook&offset=0&limit=100
622
+ (paginate until all records fetched)
623
+ ```
624
+
625
+ ### Mapping to Skalio Campaign Logs
626
+
627
+ | Skalio Column | Tarzo Policy Field |
628
+ |---|---|
629
+ | Campaign Name | campaignName |
630
+ | Status | adStatus (Active/Paused) |
631
+ | Policy Status | status (allowed, in_review, pending, etc.) |
632
+ | Account | adAccountId |
633
+ | Feed | "Tarzo - RSOC" (hardcoded) |
634
+ | Ad | adId |
635
+ | Campaign Details | reason + notes |
636
+ | User | user |
637
+
638
+ Match records to Skalio campaigns using the campaignId stored at creation time.
639
+
640
+ ---
641
+
642
+ ## 13. Ad Accounts & Facebook Pages Sync
643
+
644
+ **Fetch Tarzo ad accounts:**
645
+ ```
646
+ GET /api/v1/facebook/accounts?revenueSource=hometalk
647
+ ```
648
+ Returns accounts with id (act_XXXXXXX format) and display name (e.g. "D-1").
649
+
650
+ **Store in Skalio:**
651
+ ```
652
+ POST /api/static/adAccount/bulk-create
653
+ Body: { accounts: [{accountId: "act_123...", name: "D-1", feedProvider: "tarzo"}, ...] }
654
+ ```
655
+
656
+ **Facebook Pages:** Page IDs are standard Facebook page IDs. Use Skalio's existing page list (GET /api/static/Pages/findAll). When Tarzo is selected as feed provider, show the page selector — the same page IDs work in both systems.
657
+
658
+ ---
659
+
660
+ ## 14. Implementation Checklist
661
+
662
+ ### Backend
663
+
664
+ - [ ] Create tarzo.service.ts with: base URL (https://prod.tarzo.click/api/v1), token management (read/refresh on every response), and all endpoint wrappers from sections 3–5
665
+ - [ ] Add Tarzo JWT token to secure env/secrets storage; implement auto-refresh logic on every response
666
+ - [ ] Create "Tarzo - RSOC" feed record via POST /api/static/Feed/create
667
+ - [ ] Extend /api/feedCampaign/publishDraftCampaign — add Tarzo branch: detect revenueSource "hometalk", call initialize-article first, then create campaign, save returned Tarzo campaign ID against Skalio campaign ID
668
+ - [ ] Sync Tarzo ad accounts via GET /api/v1/facebook/accounts?revenueSource=hometalk → store with feedProvider: "tarzo" tag
669
+ - [ ] Extend /api/performance/campaign/byid — when feed = "tarzo-rsoc", fetch revenue metrics from Tarzo and merge with Facebook cost data
670
+ - [ ] Create policy sync cron job: call GET /api/v1/compliance/feed paginated → write to campaign_logs table
671
+ - [ ] Fetch and cache Tarzo domain list (GET /api/v1/domain-management?revenueSource=hometalk)
672
+ - [ ] Enforce validation: block HOUSING/EMPLOYMENT/FINANCIAL special categories when countries is empty (Worldwide)
673
+ - [ ] Add tarzo_campaign_id column to Skalio campaigns table
674
+
675
+ ### Frontend
676
+
677
+ - [ ] "Tarzo - RSOC" will appear in Feed Provider dropdown automatically once DB record is created
678
+ - [ ] Show Tarzo-specific fields when Tarzo is selected: Domain selector, Article Content Query (max 80 chars, English), Terms (optional)
679
+ - [ ] Add Facebook Page selector when Tarzo is feed provider (required for ad creation)
680
+ - [ ] Show only Tarzo-tagged ad accounts when Tarzo is feed
681
+ - [ ] Show Tarzo channel availability count (from channel-management/available) before submit
682
+ - [ ] Update Campaign Name Preview to show Tarzo naming format alongside Skalio format
683
+ - [ ] Map Tarzo policy statuses in Campaign Logs: allowed = green, in_review = yellow, pending = orange, unknown = grey
684
+ - [ ] Add "Tarzo" filter option in Performance page Feed dropdown
685
+
686
+ ### Still to confirm
687
+
688
+ 1. **Creative upload to Tarzo** — The upload endpoint is likely POST /api/v1/creatives/library/save/v2 (multipart). Confirm exact field names by capturing a network request when clicking "Upload Media" in the Tarzo Creatives Library. Recommended approach: pre-upload creatives via Tarzo UI, store creative IDs in Skalio, expose a Tarzo Creative selector in the form.
689
+ 2. **Tarzo service account** — Confirm which Tarzo account to use as the service account for the integration.
690
+ 3. **tarzo_campaign_id storage** — Confirm schema changes to store Tarzo campaign ID linked to Skalio campaign ID.
691
+ 4. **Keywords sync** — Planned for a later phase. Tarzo has keyword-level data available via the ads/report endpoint.