agrs-sequelize-sdk 1.4.56 → 1.4.57

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 (1357) 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 -168
  49. package/models/CampaignActionHistory.js +101 -101
  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 -46
  54. package/models/CampaignTagAssignment.js +48 -48
  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 +56 -56
  68. package/models/MineBrandConfig.js +26 -26
  69. package/models/MineChannel.js +47 -47
  70. package/models/MineRedirectDomain.js +42 -42
  71. package/models/MineWebhookEvent.js +53 -53
  72. package/models/Pages.js +117 -117
  73. package/models/PipelineExecution.js +59 -59
  74. package/models/PolicyDogsCreativeCache.js +50 -50
  75. package/models/PolicyDogsImageCache.js +30 -30
  76. package/models/Presets.js +40 -40
  77. package/models/PublicApiBatch.js +155 -155
  78. package/models/PublicApiBatchItem.js +166 -166
  79. package/models/PublicApiIdempotencyCache.js +135 -135
  80. package/models/RSOCFeedCampaign.js +387 -387
  81. package/models/RSOCFeedConfig.js +46 -46
  82. package/models/RSOCRedirectWsCode.js +22 -22
  83. package/models/RsocKeywordPerformance.js +110 -110
  84. package/models/RuleAction.js +90 -90
  85. package/models/RuleCondition.js +137 -137
  86. package/models/RuleExecution.js +107 -107
  87. package/models/RulesValues.js +56 -56
  88. package/models/SingularChannel.js +31 -31
  89. package/models/SnapchatAd.js +69 -69
  90. package/models/SnapchatAdSquad.js +92 -92
  91. package/models/SnapchatCampaign.js +69 -69
  92. package/models/SnapchatChannel.js +31 -31
  93. package/models/SnapchatPublicProfiles.js +67 -67
  94. package/models/SupportedLocale.js +23 -23
  95. package/models/SyncHistory.js +249 -249
  96. package/models/TTQChannel.js +42 -42
  97. package/models/Team.js +43 -0
  98. package/models/TemplateMetadata.js +260 -260
  99. package/models/Tier2_AdAccounts.js +110 -110
  100. package/models/Tier2_Assets.js +70 -70
  101. package/models/Tier2_BusinessManagers.js +105 -105
  102. package/models/Tier2_CreditLines.js +99 -99
  103. package/models/Tier2_Pages.js +91 -91
  104. package/models/Tier2_Pixels.js +82 -82
  105. package/models/Tier2_Tokens.js +64 -64
  106. package/models/Tier2_UserAdAccounts.js +83 -83
  107. package/models/TikTokAd.js +71 -71
  108. package/models/TikTokAdGroup.js +82 -82
  109. package/models/TikTokCampaign.js +71 -71
  110. package/models/TiktokChannel.js +31 -31
  111. package/models/TiktokIdentities.js +65 -65
  112. package/models/TokenRotationState.js +121 -121
  113. package/models/TonicRSOCKeywordPerformance.js +122 -122
  114. package/models/Users.js +204 -190
  115. package/models/Vertical.js +25 -25
  116. package/models/newFiles.js +137 -137
  117. package/package.json +21 -19
  118. package/run.sh +214 -214
  119. package/services/sequelizeService.js +110 -110
  120. package/tarzo-skalio-integration-docs.md +691 -691
  121. package/.impeccable/hook.cache.json +0 -1
  122. package/.worktrees/ad-review-status/LICENSE +0 -21
  123. package/.worktrees/ad-review-status/README.md +0 -179
  124. package/.worktrees/ad-review-status/index.js +0 -169
  125. package/.worktrees/ad-review-status/jq.exe +0 -0
  126. package/.worktrees/ad-review-status/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  127. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  128. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  129. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  130. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  131. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  132. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  133. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  134. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-article.js +0 -19
  135. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  136. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  137. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  138. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  139. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  140. package/.worktrees/ad-review-status/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  141. package/.worktrees/ad-review-status/migrations/2026-05-18-add-review-status-to-ad.js +0 -36
  142. package/.worktrees/ad-review-status/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  143. package/.worktrees/ad-review-status/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  144. package/.worktrees/ad-review-status/migrations/change-adset-name-to-text.js +0 -79
  145. package/.worktrees/ad-review-status/models/AICampaignQueue.js +0 -144
  146. package/.worktrees/ad-review-status/models/AIGenerationLog.js +0 -85
  147. package/.worktrees/ad-review-status/models/AIGenerationRequest.js +0 -212
  148. package/.worktrees/ad-review-status/models/ActivityHistory.js +0 -73
  149. package/.worktrees/ad-review-status/models/Ad.js +0 -312
  150. package/.worktrees/ad-review-status/models/AdAccount.js +0 -97
  151. package/.worktrees/ad-review-status/models/AdAccountValues.js +0 -26
  152. package/.worktrees/ad-review-status/models/AdHistory.js +0 -30
  153. package/.worktrees/ad-review-status/models/AdPerformance.js +0 -100
  154. package/.worktrees/ad-review-status/models/AdPerformanceHourly.js +0 -71
  155. package/.worktrees/ad-review-status/models/AdSet.js +0 -295
  156. package/.worktrees/ad-review-status/models/AdSetHistory.js +0 -30
  157. package/.worktrees/ad-review-status/models/AdsetPerformance.js +0 -132
  158. package/.worktrees/ad-review-status/models/AiArticleRetryQueue.js +0 -157
  159. package/.worktrees/ad-review-status/models/AiCreationRetryQueue.js +0 -127
  160. package/.worktrees/ad-review-status/models/Article.js +0 -212
  161. package/.worktrees/ad-review-status/models/AutomationRule.js +0 -173
  162. package/.worktrees/ad-review-status/models/BannerTemplate.js +0 -129
  163. package/.worktrees/ad-review-status/models/Buyers.js +0 -26
  164. package/.worktrees/ad-review-status/models/Campaign.js +0 -163
  165. package/.worktrees/ad-review-status/models/CampaignActionHistory.js +0 -86
  166. package/.worktrees/ad-review-status/models/CampaignCreationLog.js +0 -309
  167. package/.worktrees/ad-review-status/models/CampaignCreationLogV2.js +0 -314
  168. package/.worktrees/ad-review-status/models/CampaignHistory.js +0 -33
  169. package/.worktrees/ad-review-status/models/Channel.js +0 -55
  170. package/.worktrees/ad-review-status/models/CodefuelCampaign.js +0 -175
  171. package/.worktrees/ad-review-status/models/CodefuelCampaignKWHistory.js +0 -41
  172. package/.worktrees/ad-review-status/models/CodefuelKeywords.js +0 -35
  173. package/.worktrees/ad-review-status/models/CurrencyRate.js +0 -27
  174. package/.worktrees/ad-review-status/models/Domain.js +0 -40
  175. package/.worktrees/ad-review-status/models/DynamicFeed.js +0 -219
  176. package/.worktrees/ad-review-status/models/ExplorAdsChannel.js +0 -62
  177. package/.worktrees/ad-review-status/models/FacebookRetryQueue.js +0 -163
  178. package/.worktrees/ad-review-status/models/Feed.js +0 -34
  179. package/.worktrees/ad-review-status/models/FeedArticleConfiguration.js +0 -81
  180. package/.worktrees/ad-review-status/models/Files.js +0 -73
  181. package/.worktrees/ad-review-status/models/Folders.js +0 -133
  182. package/.worktrees/ad-review-status/models/FrontStoryChannel.js +0 -60
  183. package/.worktrees/ad-review-status/models/FrontStoryChannelV2.js +0 -60
  184. package/.worktrees/ad-review-status/models/GenericFlowRequest.js +0 -115
  185. package/.worktrees/ad-review-status/models/KeywordPerformance.js +0 -106
  186. package/.worktrees/ad-review-status/models/KeywordRotationState.js +0 -51
  187. package/.worktrees/ad-review-status/models/MidoWebChannel.js +0 -47
  188. package/.worktrees/ad-review-status/models/MineChannel.js +0 -43
  189. package/.worktrees/ad-review-status/models/Pages.js +0 -105
  190. package/.worktrees/ad-review-status/models/PipelineExecution.js +0 -59
  191. package/.worktrees/ad-review-status/models/PolicyDogsCreativeCache.js +0 -50
  192. package/.worktrees/ad-review-status/models/PolicyDogsImageCache.js +0 -30
  193. package/.worktrees/ad-review-status/models/Presets.js +0 -40
  194. package/.worktrees/ad-review-status/models/RSOCFeedCampaign.js +0 -375
  195. package/.worktrees/ad-review-status/models/RsocKeywordPerformance.js +0 -111
  196. package/.worktrees/ad-review-status/models/RuleAction.js +0 -90
  197. package/.worktrees/ad-review-status/models/RuleCondition.js +0 -137
  198. package/.worktrees/ad-review-status/models/RuleExecution.js +0 -107
  199. package/.worktrees/ad-review-status/models/RulesValues.js +0 -56
  200. package/.worktrees/ad-review-status/models/SupportedLocale.js +0 -24
  201. package/.worktrees/ad-review-status/models/SyncHistory.js +0 -250
  202. package/.worktrees/ad-review-status/models/TTQChannel.js +0 -42
  203. package/.worktrees/ad-review-status/models/TemplateMetadata.js +0 -260
  204. package/.worktrees/ad-review-status/models/Tier2_AdAccounts.js +0 -110
  205. package/.worktrees/ad-review-status/models/Tier2_Assets.js +0 -70
  206. package/.worktrees/ad-review-status/models/Tier2_BusinessManagers.js +0 -105
  207. package/.worktrees/ad-review-status/models/Tier2_CreditLines.js +0 -99
  208. package/.worktrees/ad-review-status/models/Tier2_Pages.js +0 -91
  209. package/.worktrees/ad-review-status/models/Tier2_Pixels.js +0 -82
  210. package/.worktrees/ad-review-status/models/Tier2_Tokens.js +0 -64
  211. package/.worktrees/ad-review-status/models/Tier2_UserAdAccounts.js +0 -83
  212. package/.worktrees/ad-review-status/models/TokenRotationState.js +0 -121
  213. package/.worktrees/ad-review-status/models/TonicCampaign.js +0 -97
  214. package/.worktrees/ad-review-status/models/TonicRSOCKeywordPerformance.js +0 -123
  215. package/.worktrees/ad-review-status/models/Users.js +0 -148
  216. package/.worktrees/ad-review-status/models/Vertical.js +0 -26
  217. package/.worktrees/ad-review-status/models/newFiles.js +0 -137
  218. package/.worktrees/ad-review-status/models/pixel.js +0 -47
  219. package/.worktrees/ad-review-status/package-lock.json +0 -405
  220. package/.worktrees/ad-review-status/package.json +0 -19
  221. package/.worktrees/ad-review-status/run.ps1 +0 -98
  222. package/.worktrees/ad-review-status/run.sh +0 -214
  223. package/.worktrees/ad-review-status/services/sequelizeService.js +0 -110
  224. package/.worktrees/add-platform-to-rule/LICENSE +0 -21
  225. package/.worktrees/add-platform-to-rule/README.md +0 -179
  226. package/.worktrees/add-platform-to-rule/index.js +0 -169
  227. package/.worktrees/add-platform-to-rule/jq.exe +0 -0
  228. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  229. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  230. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  231. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  232. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  233. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  234. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  235. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  236. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-article.js +0 -19
  237. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  238. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  239. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  240. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  241. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  242. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  243. package/.worktrees/add-platform-to-rule/migrations/2026-05-17-add-platform-to-rule.js +0 -19
  244. package/.worktrees/add-platform-to-rule/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  245. package/.worktrees/add-platform-to-rule/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  246. package/.worktrees/add-platform-to-rule/migrations/change-adset-name-to-text.js +0 -79
  247. package/.worktrees/add-platform-to-rule/models/AICampaignQueue.js +0 -144
  248. package/.worktrees/add-platform-to-rule/models/AIGenerationLog.js +0 -85
  249. package/.worktrees/add-platform-to-rule/models/AIGenerationRequest.js +0 -212
  250. package/.worktrees/add-platform-to-rule/models/ActivityHistory.js +0 -73
  251. package/.worktrees/add-platform-to-rule/models/Ad.js +0 -300
  252. package/.worktrees/add-platform-to-rule/models/AdAccount.js +0 -97
  253. package/.worktrees/add-platform-to-rule/models/AdAccountValues.js +0 -26
  254. package/.worktrees/add-platform-to-rule/models/AdHistory.js +0 -30
  255. package/.worktrees/add-platform-to-rule/models/AdPerformance.js +0 -100
  256. package/.worktrees/add-platform-to-rule/models/AdPerformanceHourly.js +0 -71
  257. package/.worktrees/add-platform-to-rule/models/AdSet.js +0 -295
  258. package/.worktrees/add-platform-to-rule/models/AdSetHistory.js +0 -30
  259. package/.worktrees/add-platform-to-rule/models/AdsetPerformance.js +0 -132
  260. package/.worktrees/add-platform-to-rule/models/AiArticleRetryQueue.js +0 -157
  261. package/.worktrees/add-platform-to-rule/models/AiCreationRetryQueue.js +0 -127
  262. package/.worktrees/add-platform-to-rule/models/Article.js +0 -212
  263. package/.worktrees/add-platform-to-rule/models/AutomationRule.js +0 -179
  264. package/.worktrees/add-platform-to-rule/models/BannerTemplate.js +0 -129
  265. package/.worktrees/add-platform-to-rule/models/Buyers.js +0 -26
  266. package/.worktrees/add-platform-to-rule/models/Campaign.js +0 -163
  267. package/.worktrees/add-platform-to-rule/models/CampaignActionHistory.js +0 -86
  268. package/.worktrees/add-platform-to-rule/models/CampaignCreationLog.js +0 -309
  269. package/.worktrees/add-platform-to-rule/models/CampaignCreationLogV2.js +0 -314
  270. package/.worktrees/add-platform-to-rule/models/CampaignHistory.js +0 -33
  271. package/.worktrees/add-platform-to-rule/models/Channel.js +0 -55
  272. package/.worktrees/add-platform-to-rule/models/CodefuelCampaign.js +0 -175
  273. package/.worktrees/add-platform-to-rule/models/CodefuelCampaignKWHistory.js +0 -41
  274. package/.worktrees/add-platform-to-rule/models/CodefuelKeywords.js +0 -35
  275. package/.worktrees/add-platform-to-rule/models/CurrencyRate.js +0 -27
  276. package/.worktrees/add-platform-to-rule/models/Domain.js +0 -40
  277. package/.worktrees/add-platform-to-rule/models/DynamicFeed.js +0 -219
  278. package/.worktrees/add-platform-to-rule/models/ExplorAdsChannel.js +0 -62
  279. package/.worktrees/add-platform-to-rule/models/FacebookRetryQueue.js +0 -163
  280. package/.worktrees/add-platform-to-rule/models/Feed.js +0 -34
  281. package/.worktrees/add-platform-to-rule/models/FeedArticleConfiguration.js +0 -81
  282. package/.worktrees/add-platform-to-rule/models/Files.js +0 -73
  283. package/.worktrees/add-platform-to-rule/models/Folders.js +0 -133
  284. package/.worktrees/add-platform-to-rule/models/FrontStoryChannel.js +0 -60
  285. package/.worktrees/add-platform-to-rule/models/FrontStoryChannelV2.js +0 -60
  286. package/.worktrees/add-platform-to-rule/models/GenericFlowRequest.js +0 -115
  287. package/.worktrees/add-platform-to-rule/models/KeywordPerformance.js +0 -106
  288. package/.worktrees/add-platform-to-rule/models/KeywordRotationState.js +0 -51
  289. package/.worktrees/add-platform-to-rule/models/MidoWebChannel.js +0 -47
  290. package/.worktrees/add-platform-to-rule/models/MineChannel.js +0 -43
  291. package/.worktrees/add-platform-to-rule/models/Pages.js +0 -105
  292. package/.worktrees/add-platform-to-rule/models/PipelineExecution.js +0 -59
  293. package/.worktrees/add-platform-to-rule/models/PolicyDogsCreativeCache.js +0 -50
  294. package/.worktrees/add-platform-to-rule/models/PolicyDogsImageCache.js +0 -30
  295. package/.worktrees/add-platform-to-rule/models/Presets.js +0 -40
  296. package/.worktrees/add-platform-to-rule/models/RSOCFeedCampaign.js +0 -375
  297. package/.worktrees/add-platform-to-rule/models/RsocKeywordPerformance.js +0 -111
  298. package/.worktrees/add-platform-to-rule/models/RuleAction.js +0 -90
  299. package/.worktrees/add-platform-to-rule/models/RuleCondition.js +0 -137
  300. package/.worktrees/add-platform-to-rule/models/RuleExecution.js +0 -107
  301. package/.worktrees/add-platform-to-rule/models/RulesValues.js +0 -56
  302. package/.worktrees/add-platform-to-rule/models/SupportedLocale.js +0 -24
  303. package/.worktrees/add-platform-to-rule/models/SyncHistory.js +0 -250
  304. package/.worktrees/add-platform-to-rule/models/TTQChannel.js +0 -42
  305. package/.worktrees/add-platform-to-rule/models/TemplateMetadata.js +0 -260
  306. package/.worktrees/add-platform-to-rule/models/Tier2_AdAccounts.js +0 -110
  307. package/.worktrees/add-platform-to-rule/models/Tier2_Assets.js +0 -70
  308. package/.worktrees/add-platform-to-rule/models/Tier2_BusinessManagers.js +0 -105
  309. package/.worktrees/add-platform-to-rule/models/Tier2_CreditLines.js +0 -99
  310. package/.worktrees/add-platform-to-rule/models/Tier2_Pages.js +0 -91
  311. package/.worktrees/add-platform-to-rule/models/Tier2_Pixels.js +0 -82
  312. package/.worktrees/add-platform-to-rule/models/Tier2_Tokens.js +0 -64
  313. package/.worktrees/add-platform-to-rule/models/Tier2_UserAdAccounts.js +0 -83
  314. package/.worktrees/add-platform-to-rule/models/TokenRotationState.js +0 -121
  315. package/.worktrees/add-platform-to-rule/models/TonicCampaign.js +0 -97
  316. package/.worktrees/add-platform-to-rule/models/TonicRSOCKeywordPerformance.js +0 -123
  317. package/.worktrees/add-platform-to-rule/models/Users.js +0 -148
  318. package/.worktrees/add-platform-to-rule/models/Vertical.js +0 -26
  319. package/.worktrees/add-platform-to-rule/models/newFiles.js +0 -137
  320. package/.worktrees/add-platform-to-rule/models/pixel.js +0 -47
  321. package/.worktrees/add-platform-to-rule/package-lock.json +0 -405
  322. package/.worktrees/add-platform-to-rule/package.json +0 -19
  323. package/.worktrees/add-platform-to-rule/run.ps1 +0 -98
  324. package/.worktrees/add-platform-to-rule/run.sh +0 -214
  325. package/.worktrees/add-platform-to-rule/services/sequelizeService.js +0 -110
  326. package/.worktrees/adperformance-platform/LICENSE +0 -21
  327. package/.worktrees/adperformance-platform/README.md +0 -179
  328. package/.worktrees/adperformance-platform/index.js +0 -169
  329. package/.worktrees/adperformance-platform/jq.exe +0 -0
  330. package/.worktrees/adperformance-platform/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  331. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  332. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  333. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  334. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  335. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  336. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  337. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  338. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-article.js +0 -19
  339. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  340. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  341. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  342. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  343. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  344. package/.worktrees/adperformance-platform/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  345. package/.worktrees/adperformance-platform/migrations/2026-05-18-add-platform-date-index-to-adperformance.js +0 -16
  346. package/.worktrees/adperformance-platform/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  347. package/.worktrees/adperformance-platform/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  348. package/.worktrees/adperformance-platform/migrations/change-adset-name-to-text.js +0 -79
  349. package/.worktrees/adperformance-platform/models/AICampaignQueue.js +0 -144
  350. package/.worktrees/adperformance-platform/models/AIGenerationLog.js +0 -85
  351. package/.worktrees/adperformance-platform/models/AIGenerationRequest.js +0 -212
  352. package/.worktrees/adperformance-platform/models/ActivityHistory.js +0 -73
  353. package/.worktrees/adperformance-platform/models/Ad.js +0 -300
  354. package/.worktrees/adperformance-platform/models/AdAccount.js +0 -97
  355. package/.worktrees/adperformance-platform/models/AdAccountValues.js +0 -26
  356. package/.worktrees/adperformance-platform/models/AdHistory.js +0 -30
  357. package/.worktrees/adperformance-platform/models/AdPerformance.js +0 -104
  358. package/.worktrees/adperformance-platform/models/AdPerformanceHourly.js +0 -71
  359. package/.worktrees/adperformance-platform/models/AdSet.js +0 -295
  360. package/.worktrees/adperformance-platform/models/AdSetHistory.js +0 -30
  361. package/.worktrees/adperformance-platform/models/AdsetPerformance.js +0 -132
  362. package/.worktrees/adperformance-platform/models/AiArticleRetryQueue.js +0 -157
  363. package/.worktrees/adperformance-platform/models/AiCreationRetryQueue.js +0 -127
  364. package/.worktrees/adperformance-platform/models/Article.js +0 -212
  365. package/.worktrees/adperformance-platform/models/AutomationRule.js +0 -173
  366. package/.worktrees/adperformance-platform/models/BannerTemplate.js +0 -129
  367. package/.worktrees/adperformance-platform/models/Buyers.js +0 -26
  368. package/.worktrees/adperformance-platform/models/Campaign.js +0 -163
  369. package/.worktrees/adperformance-platform/models/CampaignActionHistory.js +0 -86
  370. package/.worktrees/adperformance-platform/models/CampaignCreationLog.js +0 -309
  371. package/.worktrees/adperformance-platform/models/CampaignCreationLogV2.js +0 -314
  372. package/.worktrees/adperformance-platform/models/CampaignHistory.js +0 -33
  373. package/.worktrees/adperformance-platform/models/Channel.js +0 -55
  374. package/.worktrees/adperformance-platform/models/CodefuelCampaign.js +0 -175
  375. package/.worktrees/adperformance-platform/models/CodefuelCampaignKWHistory.js +0 -41
  376. package/.worktrees/adperformance-platform/models/CodefuelKeywords.js +0 -35
  377. package/.worktrees/adperformance-platform/models/CurrencyRate.js +0 -27
  378. package/.worktrees/adperformance-platform/models/Domain.js +0 -40
  379. package/.worktrees/adperformance-platform/models/DynamicFeed.js +0 -219
  380. package/.worktrees/adperformance-platform/models/ExplorAdsChannel.js +0 -62
  381. package/.worktrees/adperformance-platform/models/FacebookRetryQueue.js +0 -163
  382. package/.worktrees/adperformance-platform/models/Feed.js +0 -34
  383. package/.worktrees/adperformance-platform/models/FeedArticleConfiguration.js +0 -81
  384. package/.worktrees/adperformance-platform/models/Files.js +0 -73
  385. package/.worktrees/adperformance-platform/models/Folders.js +0 -133
  386. package/.worktrees/adperformance-platform/models/FrontStoryChannel.js +0 -60
  387. package/.worktrees/adperformance-platform/models/FrontStoryChannelV2.js +0 -60
  388. package/.worktrees/adperformance-platform/models/GenericFlowRequest.js +0 -115
  389. package/.worktrees/adperformance-platform/models/KeywordPerformance.js +0 -106
  390. package/.worktrees/adperformance-platform/models/KeywordRotationState.js +0 -51
  391. package/.worktrees/adperformance-platform/models/MidoWebChannel.js +0 -47
  392. package/.worktrees/adperformance-platform/models/MineChannel.js +0 -43
  393. package/.worktrees/adperformance-platform/models/Pages.js +0 -105
  394. package/.worktrees/adperformance-platform/models/PipelineExecution.js +0 -59
  395. package/.worktrees/adperformance-platform/models/PolicyDogsCreativeCache.js +0 -50
  396. package/.worktrees/adperformance-platform/models/PolicyDogsImageCache.js +0 -30
  397. package/.worktrees/adperformance-platform/models/Presets.js +0 -40
  398. package/.worktrees/adperformance-platform/models/RSOCFeedCampaign.js +0 -375
  399. package/.worktrees/adperformance-platform/models/RsocKeywordPerformance.js +0 -111
  400. package/.worktrees/adperformance-platform/models/RuleAction.js +0 -90
  401. package/.worktrees/adperformance-platform/models/RuleCondition.js +0 -137
  402. package/.worktrees/adperformance-platform/models/RuleExecution.js +0 -107
  403. package/.worktrees/adperformance-platform/models/RulesValues.js +0 -56
  404. package/.worktrees/adperformance-platform/models/SupportedLocale.js +0 -24
  405. package/.worktrees/adperformance-platform/models/SyncHistory.js +0 -250
  406. package/.worktrees/adperformance-platform/models/TTQChannel.js +0 -42
  407. package/.worktrees/adperformance-platform/models/TemplateMetadata.js +0 -260
  408. package/.worktrees/adperformance-platform/models/Tier2_AdAccounts.js +0 -110
  409. package/.worktrees/adperformance-platform/models/Tier2_Assets.js +0 -70
  410. package/.worktrees/adperformance-platform/models/Tier2_BusinessManagers.js +0 -105
  411. package/.worktrees/adperformance-platform/models/Tier2_CreditLines.js +0 -99
  412. package/.worktrees/adperformance-platform/models/Tier2_Pages.js +0 -91
  413. package/.worktrees/adperformance-platform/models/Tier2_Pixels.js +0 -82
  414. package/.worktrees/adperformance-platform/models/Tier2_Tokens.js +0 -64
  415. package/.worktrees/adperformance-platform/models/Tier2_UserAdAccounts.js +0 -83
  416. package/.worktrees/adperformance-platform/models/TokenRotationState.js +0 -121
  417. package/.worktrees/adperformance-platform/models/TonicCampaign.js +0 -97
  418. package/.worktrees/adperformance-platform/models/TonicRSOCKeywordPerformance.js +0 -123
  419. package/.worktrees/adperformance-platform/models/Users.js +0 -148
  420. package/.worktrees/adperformance-platform/models/Vertical.js +0 -26
  421. package/.worktrees/adperformance-platform/models/newFiles.js +0 -137
  422. package/.worktrees/adperformance-platform/models/pixel.js +0 -47
  423. package/.worktrees/adperformance-platform/package-lock.json +0 -405
  424. package/.worktrees/adperformance-platform/package.json +0 -19
  425. package/.worktrees/adperformance-platform/run.ps1 +0 -98
  426. package/.worktrees/adperformance-platform/run.sh +0 -214
  427. package/.worktrees/adperformance-platform/services/sequelizeService.js +0 -110
  428. package/.worktrees/adsetperformance-platform/LICENSE +0 -21
  429. package/.worktrees/adsetperformance-platform/README.md +0 -179
  430. package/.worktrees/adsetperformance-platform/index.js +0 -169
  431. package/.worktrees/adsetperformance-platform/jq.exe +0 -0
  432. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  433. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  434. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  435. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  436. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  437. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  438. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  439. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  440. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-article.js +0 -19
  441. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  442. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  443. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  444. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  445. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  446. package/.worktrees/adsetperformance-platform/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  447. package/.worktrees/adsetperformance-platform/migrations/2026-05-18-add-platform-date-index-to-adsetperformance.js +0 -16
  448. package/.worktrees/adsetperformance-platform/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  449. package/.worktrees/adsetperformance-platform/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  450. package/.worktrees/adsetperformance-platform/migrations/change-adset-name-to-text.js +0 -79
  451. package/.worktrees/adsetperformance-platform/models/AICampaignQueue.js +0 -144
  452. package/.worktrees/adsetperformance-platform/models/AIGenerationLog.js +0 -85
  453. package/.worktrees/adsetperformance-platform/models/AIGenerationRequest.js +0 -212
  454. package/.worktrees/adsetperformance-platform/models/ActivityHistory.js +0 -73
  455. package/.worktrees/adsetperformance-platform/models/Ad.js +0 -300
  456. package/.worktrees/adsetperformance-platform/models/AdAccount.js +0 -97
  457. package/.worktrees/adsetperformance-platform/models/AdAccountValues.js +0 -26
  458. package/.worktrees/adsetperformance-platform/models/AdHistory.js +0 -30
  459. package/.worktrees/adsetperformance-platform/models/AdPerformance.js +0 -100
  460. package/.worktrees/adsetperformance-platform/models/AdPerformanceHourly.js +0 -71
  461. package/.worktrees/adsetperformance-platform/models/AdSet.js +0 -295
  462. package/.worktrees/adsetperformance-platform/models/AdSetHistory.js +0 -30
  463. package/.worktrees/adsetperformance-platform/models/AdsetPerformance.js +0 -137
  464. package/.worktrees/adsetperformance-platform/models/AiArticleRetryQueue.js +0 -157
  465. package/.worktrees/adsetperformance-platform/models/AiCreationRetryQueue.js +0 -127
  466. package/.worktrees/adsetperformance-platform/models/ApiAuditLog.js +0 -84
  467. package/.worktrees/adsetperformance-platform/models/ApiToken.js +0 -67
  468. package/.worktrees/adsetperformance-platform/models/Article.js +0 -212
  469. package/.worktrees/adsetperformance-platform/models/AutomationRule.js +0 -173
  470. package/.worktrees/adsetperformance-platform/models/BannerTemplate.js +0 -129
  471. package/.worktrees/adsetperformance-platform/models/Buyers.js +0 -26
  472. package/.worktrees/adsetperformance-platform/models/Campaign.js +0 -163
  473. package/.worktrees/adsetperformance-platform/models/CampaignActionHistory.js +0 -86
  474. package/.worktrees/adsetperformance-platform/models/CampaignCreationLog.js +0 -309
  475. package/.worktrees/adsetperformance-platform/models/CampaignCreationLogV2.js +0 -314
  476. package/.worktrees/adsetperformance-platform/models/CampaignHistory.js +0 -33
  477. package/.worktrees/adsetperformance-platform/models/Channel.js +0 -55
  478. package/.worktrees/adsetperformance-platform/models/CodefuelCampaign.js +0 -175
  479. package/.worktrees/adsetperformance-platform/models/CodefuelCampaignKWHistory.js +0 -41
  480. package/.worktrees/adsetperformance-platform/models/CodefuelKeywords.js +0 -35
  481. package/.worktrees/adsetperformance-platform/models/CurrencyRate.js +0 -27
  482. package/.worktrees/adsetperformance-platform/models/Domain.js +0 -40
  483. package/.worktrees/adsetperformance-platform/models/DynamicFeed.js +0 -219
  484. package/.worktrees/adsetperformance-platform/models/ExplorAdsChannel.js +0 -62
  485. package/.worktrees/adsetperformance-platform/models/FacebookRetryQueue.js +0 -163
  486. package/.worktrees/adsetperformance-platform/models/Feed.js +0 -34
  487. package/.worktrees/adsetperformance-platform/models/FeedArticleConfiguration.js +0 -81
  488. package/.worktrees/adsetperformance-platform/models/Files.js +0 -73
  489. package/.worktrees/adsetperformance-platform/models/Folders.js +0 -133
  490. package/.worktrees/adsetperformance-platform/models/FrontStoryChannel.js +0 -60
  491. package/.worktrees/adsetperformance-platform/models/FrontStoryChannelV2.js +0 -60
  492. package/.worktrees/adsetperformance-platform/models/GenericFlowRequest.js +0 -115
  493. package/.worktrees/adsetperformance-platform/models/KeywordPerformance.js +0 -106
  494. package/.worktrees/adsetperformance-platform/models/KeywordRotationState.js +0 -51
  495. package/.worktrees/adsetperformance-platform/models/MidoWebChannel.js +0 -47
  496. package/.worktrees/adsetperformance-platform/models/MineChannel.js +0 -43
  497. package/.worktrees/adsetperformance-platform/models/Pages.js +0 -105
  498. package/.worktrees/adsetperformance-platform/models/PipelineExecution.js +0 -59
  499. package/.worktrees/adsetperformance-platform/models/PolicyDogsCreativeCache.js +0 -50
  500. package/.worktrees/adsetperformance-platform/models/PolicyDogsImageCache.js +0 -30
  501. package/.worktrees/adsetperformance-platform/models/Presets.js +0 -40
  502. package/.worktrees/adsetperformance-platform/models/RSOCFeedCampaign.js +0 -375
  503. package/.worktrees/adsetperformance-platform/models/RsocKeywordPerformance.js +0 -111
  504. package/.worktrees/adsetperformance-platform/models/RuleAction.js +0 -90
  505. package/.worktrees/adsetperformance-platform/models/RuleCondition.js +0 -137
  506. package/.worktrees/adsetperformance-platform/models/RuleExecution.js +0 -107
  507. package/.worktrees/adsetperformance-platform/models/RulesValues.js +0 -56
  508. package/.worktrees/adsetperformance-platform/models/SupportedLocale.js +0 -24
  509. package/.worktrees/adsetperformance-platform/models/SyncHistory.js +0 -250
  510. package/.worktrees/adsetperformance-platform/models/TTQChannel.js +0 -42
  511. package/.worktrees/adsetperformance-platform/models/TemplateMetadata.js +0 -260
  512. package/.worktrees/adsetperformance-platform/models/Tier2_AdAccounts.js +0 -110
  513. package/.worktrees/adsetperformance-platform/models/Tier2_Assets.js +0 -70
  514. package/.worktrees/adsetperformance-platform/models/Tier2_BusinessManagers.js +0 -105
  515. package/.worktrees/adsetperformance-platform/models/Tier2_CreditLines.js +0 -99
  516. package/.worktrees/adsetperformance-platform/models/Tier2_Pages.js +0 -91
  517. package/.worktrees/adsetperformance-platform/models/Tier2_Pixels.js +0 -82
  518. package/.worktrees/adsetperformance-platform/models/Tier2_Tokens.js +0 -64
  519. package/.worktrees/adsetperformance-platform/models/Tier2_UserAdAccounts.js +0 -83
  520. package/.worktrees/adsetperformance-platform/models/TokenRotationState.js +0 -121
  521. package/.worktrees/adsetperformance-platform/models/TonicCampaign.js +0 -97
  522. package/.worktrees/adsetperformance-platform/models/TonicRSOCKeywordPerformance.js +0 -123
  523. package/.worktrees/adsetperformance-platform/models/Users.js +0 -148
  524. package/.worktrees/adsetperformance-platform/models/Vertical.js +0 -26
  525. package/.worktrees/adsetperformance-platform/models/newFiles.js +0 -137
  526. package/.worktrees/adsetperformance-platform/models/pixel.js +0 -47
  527. package/.worktrees/adsetperformance-platform/package-lock.json +0 -406
  528. package/.worktrees/adsetperformance-platform/package.json +0 -19
  529. package/.worktrees/adsetperformance-platform/run.ps1 +0 -98
  530. package/.worktrees/adsetperformance-platform/run.sh +0 -214
  531. package/.worktrees/adsetperformance-platform/services/sequelizeService.js +0 -110
  532. package/.worktrees/aicampaign-queue-group-id/LICENSE +0 -21
  533. package/.worktrees/aicampaign-queue-group-id/README.md +0 -179
  534. package/.worktrees/aicampaign-queue-group-id/index.js +0 -169
  535. package/.worktrees/aicampaign-queue-group-id/jq.exe +0 -0
  536. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  537. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  538. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  539. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  540. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  541. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  542. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  543. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  544. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-article.js +0 -19
  545. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  546. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  547. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  548. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  549. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  550. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  551. package/.worktrees/aicampaign-queue-group-id/migrations/2026-05-18-add-group-id-to-ai-campaign-queue.js +0 -18
  552. package/.worktrees/aicampaign-queue-group-id/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  553. package/.worktrees/aicampaign-queue-group-id/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  554. package/.worktrees/aicampaign-queue-group-id/migrations/change-adset-name-to-text.js +0 -79
  555. package/.worktrees/aicampaign-queue-group-id/models/AICampaignQueue.js +0 -153
  556. package/.worktrees/aicampaign-queue-group-id/models/AIGenerationLog.js +0 -85
  557. package/.worktrees/aicampaign-queue-group-id/models/AIGenerationRequest.js +0 -212
  558. package/.worktrees/aicampaign-queue-group-id/models/ActivityHistory.js +0 -73
  559. package/.worktrees/aicampaign-queue-group-id/models/Ad.js +0 -300
  560. package/.worktrees/aicampaign-queue-group-id/models/AdAccount.js +0 -97
  561. package/.worktrees/aicampaign-queue-group-id/models/AdAccountValues.js +0 -26
  562. package/.worktrees/aicampaign-queue-group-id/models/AdHistory.js +0 -30
  563. package/.worktrees/aicampaign-queue-group-id/models/AdPerformance.js +0 -100
  564. package/.worktrees/aicampaign-queue-group-id/models/AdPerformanceHourly.js +0 -71
  565. package/.worktrees/aicampaign-queue-group-id/models/AdSet.js +0 -295
  566. package/.worktrees/aicampaign-queue-group-id/models/AdSetHistory.js +0 -30
  567. package/.worktrees/aicampaign-queue-group-id/models/AdsetPerformance.js +0 -132
  568. package/.worktrees/aicampaign-queue-group-id/models/AiArticleRetryQueue.js +0 -157
  569. package/.worktrees/aicampaign-queue-group-id/models/AiCreationRetryQueue.js +0 -127
  570. package/.worktrees/aicampaign-queue-group-id/models/Article.js +0 -212
  571. package/.worktrees/aicampaign-queue-group-id/models/AutomationRule.js +0 -173
  572. package/.worktrees/aicampaign-queue-group-id/models/BannerTemplate.js +0 -129
  573. package/.worktrees/aicampaign-queue-group-id/models/Buyers.js +0 -26
  574. package/.worktrees/aicampaign-queue-group-id/models/Campaign.js +0 -163
  575. package/.worktrees/aicampaign-queue-group-id/models/CampaignActionHistory.js +0 -86
  576. package/.worktrees/aicampaign-queue-group-id/models/CampaignCreationLog.js +0 -309
  577. package/.worktrees/aicampaign-queue-group-id/models/CampaignCreationLogV2.js +0 -314
  578. package/.worktrees/aicampaign-queue-group-id/models/CampaignHistory.js +0 -33
  579. package/.worktrees/aicampaign-queue-group-id/models/Channel.js +0 -55
  580. package/.worktrees/aicampaign-queue-group-id/models/CodefuelCampaign.js +0 -175
  581. package/.worktrees/aicampaign-queue-group-id/models/CodefuelCampaignKWHistory.js +0 -41
  582. package/.worktrees/aicampaign-queue-group-id/models/CodefuelKeywords.js +0 -35
  583. package/.worktrees/aicampaign-queue-group-id/models/CurrencyRate.js +0 -27
  584. package/.worktrees/aicampaign-queue-group-id/models/Domain.js +0 -40
  585. package/.worktrees/aicampaign-queue-group-id/models/DynamicFeed.js +0 -219
  586. package/.worktrees/aicampaign-queue-group-id/models/ExplorAdsChannel.js +0 -62
  587. package/.worktrees/aicampaign-queue-group-id/models/FacebookRetryQueue.js +0 -163
  588. package/.worktrees/aicampaign-queue-group-id/models/Feed.js +0 -34
  589. package/.worktrees/aicampaign-queue-group-id/models/FeedArticleConfiguration.js +0 -81
  590. package/.worktrees/aicampaign-queue-group-id/models/Files.js +0 -73
  591. package/.worktrees/aicampaign-queue-group-id/models/Folders.js +0 -133
  592. package/.worktrees/aicampaign-queue-group-id/models/FrontStoryChannel.js +0 -60
  593. package/.worktrees/aicampaign-queue-group-id/models/FrontStoryChannelV2.js +0 -60
  594. package/.worktrees/aicampaign-queue-group-id/models/GenericFlowRequest.js +0 -115
  595. package/.worktrees/aicampaign-queue-group-id/models/KeywordPerformance.js +0 -106
  596. package/.worktrees/aicampaign-queue-group-id/models/KeywordRotationState.js +0 -51
  597. package/.worktrees/aicampaign-queue-group-id/models/MidoWebChannel.js +0 -47
  598. package/.worktrees/aicampaign-queue-group-id/models/MineChannel.js +0 -43
  599. package/.worktrees/aicampaign-queue-group-id/models/Pages.js +0 -105
  600. package/.worktrees/aicampaign-queue-group-id/models/PipelineExecution.js +0 -59
  601. package/.worktrees/aicampaign-queue-group-id/models/PolicyDogsCreativeCache.js +0 -50
  602. package/.worktrees/aicampaign-queue-group-id/models/PolicyDogsImageCache.js +0 -30
  603. package/.worktrees/aicampaign-queue-group-id/models/Presets.js +0 -40
  604. package/.worktrees/aicampaign-queue-group-id/models/RSOCFeedCampaign.js +0 -375
  605. package/.worktrees/aicampaign-queue-group-id/models/RsocKeywordPerformance.js +0 -111
  606. package/.worktrees/aicampaign-queue-group-id/models/RuleAction.js +0 -90
  607. package/.worktrees/aicampaign-queue-group-id/models/RuleCondition.js +0 -137
  608. package/.worktrees/aicampaign-queue-group-id/models/RuleExecution.js +0 -107
  609. package/.worktrees/aicampaign-queue-group-id/models/RulesValues.js +0 -56
  610. package/.worktrees/aicampaign-queue-group-id/models/SupportedLocale.js +0 -24
  611. package/.worktrees/aicampaign-queue-group-id/models/SyncHistory.js +0 -250
  612. package/.worktrees/aicampaign-queue-group-id/models/TTQChannel.js +0 -42
  613. package/.worktrees/aicampaign-queue-group-id/models/TemplateMetadata.js +0 -260
  614. package/.worktrees/aicampaign-queue-group-id/models/Tier2_AdAccounts.js +0 -110
  615. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Assets.js +0 -70
  616. package/.worktrees/aicampaign-queue-group-id/models/Tier2_BusinessManagers.js +0 -105
  617. package/.worktrees/aicampaign-queue-group-id/models/Tier2_CreditLines.js +0 -99
  618. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Pages.js +0 -91
  619. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Pixels.js +0 -82
  620. package/.worktrees/aicampaign-queue-group-id/models/Tier2_Tokens.js +0 -64
  621. package/.worktrees/aicampaign-queue-group-id/models/Tier2_UserAdAccounts.js +0 -83
  622. package/.worktrees/aicampaign-queue-group-id/models/TokenRotationState.js +0 -121
  623. package/.worktrees/aicampaign-queue-group-id/models/TonicCampaign.js +0 -97
  624. package/.worktrees/aicampaign-queue-group-id/models/TonicRSOCKeywordPerformance.js +0 -123
  625. package/.worktrees/aicampaign-queue-group-id/models/Users.js +0 -148
  626. package/.worktrees/aicampaign-queue-group-id/models/Vertical.js +0 -26
  627. package/.worktrees/aicampaign-queue-group-id/models/newFiles.js +0 -137
  628. package/.worktrees/aicampaign-queue-group-id/models/pixel.js +0 -47
  629. package/.worktrees/aicampaign-queue-group-id/package-lock.json +0 -405
  630. package/.worktrees/aicampaign-queue-group-id/package.json +0 -19
  631. package/.worktrees/aicampaign-queue-group-id/run.ps1 +0 -98
  632. package/.worktrees/aicampaign-queue-group-id/run.sh +0 -214
  633. package/.worktrees/aicampaign-queue-group-id/services/sequelizeService.js +0 -110
  634. package/.worktrees/canonical-insights-model/LICENSE +0 -21
  635. package/.worktrees/canonical-insights-model/README.md +0 -179
  636. package/.worktrees/canonical-insights-model/index.js +0 -169
  637. package/.worktrees/canonical-insights-model/jq.exe +0 -0
  638. package/.worktrees/canonical-insights-model/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  639. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  640. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  641. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  642. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  643. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  644. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  645. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  646. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-article.js +0 -19
  647. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  648. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  649. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  650. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  651. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  652. package/.worktrees/canonical-insights-model/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  653. package/.worktrees/canonical-insights-model/migrations/2026-05-18-create-canonical-insights.js +0 -84
  654. package/.worktrees/canonical-insights-model/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  655. package/.worktrees/canonical-insights-model/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  656. package/.worktrees/canonical-insights-model/migrations/change-adset-name-to-text.js +0 -79
  657. package/.worktrees/canonical-insights-model/models/AICampaignQueue.js +0 -144
  658. package/.worktrees/canonical-insights-model/models/AIGenerationLog.js +0 -85
  659. package/.worktrees/canonical-insights-model/models/AIGenerationRequest.js +0 -212
  660. package/.worktrees/canonical-insights-model/models/ActivityHistory.js +0 -73
  661. package/.worktrees/canonical-insights-model/models/Ad.js +0 -300
  662. package/.worktrees/canonical-insights-model/models/AdAccount.js +0 -97
  663. package/.worktrees/canonical-insights-model/models/AdAccountValues.js +0 -26
  664. package/.worktrees/canonical-insights-model/models/AdHistory.js +0 -30
  665. package/.worktrees/canonical-insights-model/models/AdPerformance.js +0 -100
  666. package/.worktrees/canonical-insights-model/models/AdPerformanceHourly.js +0 -71
  667. package/.worktrees/canonical-insights-model/models/AdSet.js +0 -295
  668. package/.worktrees/canonical-insights-model/models/AdSetHistory.js +0 -30
  669. package/.worktrees/canonical-insights-model/models/AdsetPerformance.js +0 -132
  670. package/.worktrees/canonical-insights-model/models/AiArticleRetryQueue.js +0 -157
  671. package/.worktrees/canonical-insights-model/models/AiCreationRetryQueue.js +0 -127
  672. package/.worktrees/canonical-insights-model/models/Article.js +0 -212
  673. package/.worktrees/canonical-insights-model/models/AutomationRule.js +0 -173
  674. package/.worktrees/canonical-insights-model/models/BannerTemplate.js +0 -129
  675. package/.worktrees/canonical-insights-model/models/Buyers.js +0 -26
  676. package/.worktrees/canonical-insights-model/models/Campaign.js +0 -163
  677. package/.worktrees/canonical-insights-model/models/CampaignActionHistory.js +0 -86
  678. package/.worktrees/canonical-insights-model/models/CampaignCreationLog.js +0 -309
  679. package/.worktrees/canonical-insights-model/models/CampaignCreationLogV2.js +0 -314
  680. package/.worktrees/canonical-insights-model/models/CampaignHistory.js +0 -33
  681. package/.worktrees/canonical-insights-model/models/CanonicalInsights.js +0 -68
  682. package/.worktrees/canonical-insights-model/models/Channel.js +0 -55
  683. package/.worktrees/canonical-insights-model/models/CodefuelCampaign.js +0 -175
  684. package/.worktrees/canonical-insights-model/models/CodefuelCampaignKWHistory.js +0 -41
  685. package/.worktrees/canonical-insights-model/models/CodefuelKeywords.js +0 -35
  686. package/.worktrees/canonical-insights-model/models/CurrencyRate.js +0 -27
  687. package/.worktrees/canonical-insights-model/models/Domain.js +0 -40
  688. package/.worktrees/canonical-insights-model/models/DynamicFeed.js +0 -219
  689. package/.worktrees/canonical-insights-model/models/ExplorAdsChannel.js +0 -62
  690. package/.worktrees/canonical-insights-model/models/FacebookRetryQueue.js +0 -163
  691. package/.worktrees/canonical-insights-model/models/Feed.js +0 -34
  692. package/.worktrees/canonical-insights-model/models/FeedArticleConfiguration.js +0 -81
  693. package/.worktrees/canonical-insights-model/models/Files.js +0 -73
  694. package/.worktrees/canonical-insights-model/models/Folders.js +0 -133
  695. package/.worktrees/canonical-insights-model/models/FrontStoryChannel.js +0 -60
  696. package/.worktrees/canonical-insights-model/models/FrontStoryChannelV2.js +0 -60
  697. package/.worktrees/canonical-insights-model/models/GenericFlowRequest.js +0 -115
  698. package/.worktrees/canonical-insights-model/models/KeywordPerformance.js +0 -106
  699. package/.worktrees/canonical-insights-model/models/KeywordRotationState.js +0 -51
  700. package/.worktrees/canonical-insights-model/models/MidoWebChannel.js +0 -47
  701. package/.worktrees/canonical-insights-model/models/MineChannel.js +0 -43
  702. package/.worktrees/canonical-insights-model/models/Pages.js +0 -105
  703. package/.worktrees/canonical-insights-model/models/PipelineExecution.js +0 -59
  704. package/.worktrees/canonical-insights-model/models/PolicyDogsCreativeCache.js +0 -50
  705. package/.worktrees/canonical-insights-model/models/PolicyDogsImageCache.js +0 -30
  706. package/.worktrees/canonical-insights-model/models/Presets.js +0 -40
  707. package/.worktrees/canonical-insights-model/models/RSOCFeedCampaign.js +0 -375
  708. package/.worktrees/canonical-insights-model/models/RsocKeywordPerformance.js +0 -111
  709. package/.worktrees/canonical-insights-model/models/RuleAction.js +0 -90
  710. package/.worktrees/canonical-insights-model/models/RuleCondition.js +0 -137
  711. package/.worktrees/canonical-insights-model/models/RuleExecution.js +0 -107
  712. package/.worktrees/canonical-insights-model/models/RulesValues.js +0 -56
  713. package/.worktrees/canonical-insights-model/models/SupportedLocale.js +0 -24
  714. package/.worktrees/canonical-insights-model/models/SyncHistory.js +0 -250
  715. package/.worktrees/canonical-insights-model/models/TTQChannel.js +0 -42
  716. package/.worktrees/canonical-insights-model/models/TemplateMetadata.js +0 -260
  717. package/.worktrees/canonical-insights-model/models/Tier2_AdAccounts.js +0 -110
  718. package/.worktrees/canonical-insights-model/models/Tier2_Assets.js +0 -70
  719. package/.worktrees/canonical-insights-model/models/Tier2_BusinessManagers.js +0 -105
  720. package/.worktrees/canonical-insights-model/models/Tier2_CreditLines.js +0 -99
  721. package/.worktrees/canonical-insights-model/models/Tier2_Pages.js +0 -91
  722. package/.worktrees/canonical-insights-model/models/Tier2_Pixels.js +0 -82
  723. package/.worktrees/canonical-insights-model/models/Tier2_Tokens.js +0 -64
  724. package/.worktrees/canonical-insights-model/models/Tier2_UserAdAccounts.js +0 -83
  725. package/.worktrees/canonical-insights-model/models/TokenRotationState.js +0 -121
  726. package/.worktrees/canonical-insights-model/models/TonicCampaign.js +0 -97
  727. package/.worktrees/canonical-insights-model/models/TonicRSOCKeywordPerformance.js +0 -123
  728. package/.worktrees/canonical-insights-model/models/Users.js +0 -148
  729. package/.worktrees/canonical-insights-model/models/Vertical.js +0 -26
  730. package/.worktrees/canonical-insights-model/models/newFiles.js +0 -137
  731. package/.worktrees/canonical-insights-model/models/pixel.js +0 -47
  732. package/.worktrees/canonical-insights-model/package-lock.json +0 -405
  733. package/.worktrees/canonical-insights-model/package.json +0 -19
  734. package/.worktrees/canonical-insights-model/run.ps1 +0 -98
  735. package/.worktrees/canonical-insights-model/run.sh +0 -214
  736. package/.worktrees/canonical-insights-model/services/sequelizeService.js +0 -110
  737. package/.worktrees/creation-logs-platform-code/LICENSE +0 -21
  738. package/.worktrees/creation-logs-platform-code/README.md +0 -179
  739. package/.worktrees/creation-logs-platform-code/index.js +0 -169
  740. package/.worktrees/creation-logs-platform-code/jq.exe +0 -0
  741. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  742. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  743. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  744. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  745. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  746. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  747. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  748. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  749. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  750. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  751. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  752. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  753. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  754. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  755. package/.worktrees/creation-logs-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  756. package/.worktrees/creation-logs-platform-code/migrations/2026-05-18-add-platform-code-to-creation-logs.js +0 -65
  757. package/.worktrees/creation-logs-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  758. package/.worktrees/creation-logs-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  759. package/.worktrees/creation-logs-platform-code/migrations/change-adset-name-to-text.js +0 -79
  760. package/.worktrees/creation-logs-platform-code/models/AICampaignQueue.js +0 -144
  761. package/.worktrees/creation-logs-platform-code/models/AIGenerationLog.js +0 -85
  762. package/.worktrees/creation-logs-platform-code/models/AIGenerationRequest.js +0 -212
  763. package/.worktrees/creation-logs-platform-code/models/ActivityHistory.js +0 -73
  764. package/.worktrees/creation-logs-platform-code/models/Ad.js +0 -300
  765. package/.worktrees/creation-logs-platform-code/models/AdAccount.js +0 -97
  766. package/.worktrees/creation-logs-platform-code/models/AdAccountValues.js +0 -26
  767. package/.worktrees/creation-logs-platform-code/models/AdHistory.js +0 -30
  768. package/.worktrees/creation-logs-platform-code/models/AdPerformance.js +0 -100
  769. package/.worktrees/creation-logs-platform-code/models/AdPerformanceHourly.js +0 -71
  770. package/.worktrees/creation-logs-platform-code/models/AdSet.js +0 -295
  771. package/.worktrees/creation-logs-platform-code/models/AdSetHistory.js +0 -30
  772. package/.worktrees/creation-logs-platform-code/models/AdsetPerformance.js +0 -132
  773. package/.worktrees/creation-logs-platform-code/models/AiArticleRetryQueue.js +0 -157
  774. package/.worktrees/creation-logs-platform-code/models/AiCreationRetryQueue.js +0 -127
  775. package/.worktrees/creation-logs-platform-code/models/Article.js +0 -212
  776. package/.worktrees/creation-logs-platform-code/models/AutomationRule.js +0 -173
  777. package/.worktrees/creation-logs-platform-code/models/BannerTemplate.js +0 -129
  778. package/.worktrees/creation-logs-platform-code/models/Buyers.js +0 -26
  779. package/.worktrees/creation-logs-platform-code/models/Campaign.js +0 -163
  780. package/.worktrees/creation-logs-platform-code/models/CampaignActionHistory.js +0 -86
  781. package/.worktrees/creation-logs-platform-code/models/CampaignCreationLog.js +0 -321
  782. package/.worktrees/creation-logs-platform-code/models/CampaignCreationLogV2.js +0 -322
  783. package/.worktrees/creation-logs-platform-code/models/CampaignHistory.js +0 -33
  784. package/.worktrees/creation-logs-platform-code/models/Channel.js +0 -55
  785. package/.worktrees/creation-logs-platform-code/models/CodefuelCampaign.js +0 -175
  786. package/.worktrees/creation-logs-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  787. package/.worktrees/creation-logs-platform-code/models/CodefuelKeywords.js +0 -35
  788. package/.worktrees/creation-logs-platform-code/models/CurrencyRate.js +0 -27
  789. package/.worktrees/creation-logs-platform-code/models/Domain.js +0 -40
  790. package/.worktrees/creation-logs-platform-code/models/DynamicFeed.js +0 -219
  791. package/.worktrees/creation-logs-platform-code/models/ExplorAdsChannel.js +0 -62
  792. package/.worktrees/creation-logs-platform-code/models/FacebookRetryQueue.js +0 -163
  793. package/.worktrees/creation-logs-platform-code/models/Feed.js +0 -34
  794. package/.worktrees/creation-logs-platform-code/models/FeedArticleConfiguration.js +0 -81
  795. package/.worktrees/creation-logs-platform-code/models/Files.js +0 -73
  796. package/.worktrees/creation-logs-platform-code/models/Folders.js +0 -133
  797. package/.worktrees/creation-logs-platform-code/models/FrontStoryChannel.js +0 -60
  798. package/.worktrees/creation-logs-platform-code/models/FrontStoryChannelV2.js +0 -60
  799. package/.worktrees/creation-logs-platform-code/models/GenericFlowRequest.js +0 -115
  800. package/.worktrees/creation-logs-platform-code/models/KeywordPerformance.js +0 -106
  801. package/.worktrees/creation-logs-platform-code/models/KeywordRotationState.js +0 -51
  802. package/.worktrees/creation-logs-platform-code/models/MidoWebChannel.js +0 -47
  803. package/.worktrees/creation-logs-platform-code/models/MineChannel.js +0 -43
  804. package/.worktrees/creation-logs-platform-code/models/Pages.js +0 -105
  805. package/.worktrees/creation-logs-platform-code/models/PipelineExecution.js +0 -59
  806. package/.worktrees/creation-logs-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  807. package/.worktrees/creation-logs-platform-code/models/PolicyDogsImageCache.js +0 -30
  808. package/.worktrees/creation-logs-platform-code/models/Presets.js +0 -40
  809. package/.worktrees/creation-logs-platform-code/models/RSOCFeedCampaign.js +0 -375
  810. package/.worktrees/creation-logs-platform-code/models/RsocKeywordPerformance.js +0 -111
  811. package/.worktrees/creation-logs-platform-code/models/RuleAction.js +0 -90
  812. package/.worktrees/creation-logs-platform-code/models/RuleCondition.js +0 -137
  813. package/.worktrees/creation-logs-platform-code/models/RuleExecution.js +0 -107
  814. package/.worktrees/creation-logs-platform-code/models/RulesValues.js +0 -56
  815. package/.worktrees/creation-logs-platform-code/models/SupportedLocale.js +0 -24
  816. package/.worktrees/creation-logs-platform-code/models/SyncHistory.js +0 -250
  817. package/.worktrees/creation-logs-platform-code/models/TTQChannel.js +0 -42
  818. package/.worktrees/creation-logs-platform-code/models/TemplateMetadata.js +0 -260
  819. package/.worktrees/creation-logs-platform-code/models/Tier2_AdAccounts.js +0 -110
  820. package/.worktrees/creation-logs-platform-code/models/Tier2_Assets.js +0 -70
  821. package/.worktrees/creation-logs-platform-code/models/Tier2_BusinessManagers.js +0 -105
  822. package/.worktrees/creation-logs-platform-code/models/Tier2_CreditLines.js +0 -99
  823. package/.worktrees/creation-logs-platform-code/models/Tier2_Pages.js +0 -91
  824. package/.worktrees/creation-logs-platform-code/models/Tier2_Pixels.js +0 -82
  825. package/.worktrees/creation-logs-platform-code/models/Tier2_Tokens.js +0 -64
  826. package/.worktrees/creation-logs-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  827. package/.worktrees/creation-logs-platform-code/models/TokenRotationState.js +0 -121
  828. package/.worktrees/creation-logs-platform-code/models/TonicCampaign.js +0 -97
  829. package/.worktrees/creation-logs-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  830. package/.worktrees/creation-logs-platform-code/models/Users.js +0 -148
  831. package/.worktrees/creation-logs-platform-code/models/Vertical.js +0 -26
  832. package/.worktrees/creation-logs-platform-code/models/newFiles.js +0 -137
  833. package/.worktrees/creation-logs-platform-code/models/pixel.js +0 -47
  834. package/.worktrees/creation-logs-platform-code/package-lock.json +0 -405
  835. package/.worktrees/creation-logs-platform-code/package.json +0 -19
  836. package/.worktrees/creation-logs-platform-code/run.ps1 +0 -98
  837. package/.worktrees/creation-logs-platform-code/run.sh +0 -214
  838. package/.worktrees/creation-logs-platform-code/services/sequelizeService.js +0 -110
  839. package/.worktrees/pixels-platform-code/LICENSE +0 -21
  840. package/.worktrees/pixels-platform-code/README.md +0 -179
  841. package/.worktrees/pixels-platform-code/index.js +0 -169
  842. package/.worktrees/pixels-platform-code/jq.exe +0 -0
  843. package/.worktrees/pixels-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  844. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  845. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  846. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  847. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  848. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  849. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  850. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  851. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  852. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  853. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  854. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  855. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  856. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  857. package/.worktrees/pixels-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  858. package/.worktrees/pixels-platform-code/migrations/2026-05-18-add-platform-code-to-pixels.js +0 -55
  859. package/.worktrees/pixels-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  860. package/.worktrees/pixels-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  861. package/.worktrees/pixels-platform-code/migrations/change-adset-name-to-text.js +0 -79
  862. package/.worktrees/pixels-platform-code/models/AICampaignQueue.js +0 -144
  863. package/.worktrees/pixels-platform-code/models/AIGenerationLog.js +0 -85
  864. package/.worktrees/pixels-platform-code/models/AIGenerationRequest.js +0 -212
  865. package/.worktrees/pixels-platform-code/models/ActivityHistory.js +0 -73
  866. package/.worktrees/pixels-platform-code/models/Ad.js +0 -300
  867. package/.worktrees/pixels-platform-code/models/AdAccount.js +0 -97
  868. package/.worktrees/pixels-platform-code/models/AdAccountValues.js +0 -26
  869. package/.worktrees/pixels-platform-code/models/AdHistory.js +0 -30
  870. package/.worktrees/pixels-platform-code/models/AdPerformance.js +0 -100
  871. package/.worktrees/pixels-platform-code/models/AdPerformanceHourly.js +0 -71
  872. package/.worktrees/pixels-platform-code/models/AdSet.js +0 -295
  873. package/.worktrees/pixels-platform-code/models/AdSetHistory.js +0 -30
  874. package/.worktrees/pixels-platform-code/models/AdsetPerformance.js +0 -132
  875. package/.worktrees/pixels-platform-code/models/AiArticleRetryQueue.js +0 -157
  876. package/.worktrees/pixels-platform-code/models/AiCreationRetryQueue.js +0 -127
  877. package/.worktrees/pixels-platform-code/models/Article.js +0 -212
  878. package/.worktrees/pixels-platform-code/models/AutomationRule.js +0 -173
  879. package/.worktrees/pixels-platform-code/models/BannerTemplate.js +0 -129
  880. package/.worktrees/pixels-platform-code/models/Buyers.js +0 -26
  881. package/.worktrees/pixels-platform-code/models/Campaign.js +0 -163
  882. package/.worktrees/pixels-platform-code/models/CampaignActionHistory.js +0 -86
  883. package/.worktrees/pixels-platform-code/models/CampaignCreationLog.js +0 -309
  884. package/.worktrees/pixels-platform-code/models/CampaignCreationLogV2.js +0 -314
  885. package/.worktrees/pixels-platform-code/models/CampaignHistory.js +0 -33
  886. package/.worktrees/pixels-platform-code/models/Channel.js +0 -55
  887. package/.worktrees/pixels-platform-code/models/CodefuelCampaign.js +0 -175
  888. package/.worktrees/pixels-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  889. package/.worktrees/pixels-platform-code/models/CodefuelKeywords.js +0 -35
  890. package/.worktrees/pixels-platform-code/models/CurrencyRate.js +0 -27
  891. package/.worktrees/pixels-platform-code/models/Domain.js +0 -40
  892. package/.worktrees/pixels-platform-code/models/DynamicFeed.js +0 -219
  893. package/.worktrees/pixels-platform-code/models/ExplorAdsChannel.js +0 -62
  894. package/.worktrees/pixels-platform-code/models/FacebookRetryQueue.js +0 -163
  895. package/.worktrees/pixels-platform-code/models/Feed.js +0 -34
  896. package/.worktrees/pixels-platform-code/models/FeedArticleConfiguration.js +0 -81
  897. package/.worktrees/pixels-platform-code/models/Files.js +0 -73
  898. package/.worktrees/pixels-platform-code/models/Folders.js +0 -133
  899. package/.worktrees/pixels-platform-code/models/FrontStoryChannel.js +0 -60
  900. package/.worktrees/pixels-platform-code/models/FrontStoryChannelV2.js +0 -60
  901. package/.worktrees/pixels-platform-code/models/GenericFlowRequest.js +0 -115
  902. package/.worktrees/pixels-platform-code/models/KeywordPerformance.js +0 -106
  903. package/.worktrees/pixels-platform-code/models/KeywordRotationState.js +0 -51
  904. package/.worktrees/pixels-platform-code/models/MidoWebChannel.js +0 -47
  905. package/.worktrees/pixels-platform-code/models/MineChannel.js +0 -43
  906. package/.worktrees/pixels-platform-code/models/Pages.js +0 -105
  907. package/.worktrees/pixels-platform-code/models/PipelineExecution.js +0 -59
  908. package/.worktrees/pixels-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  909. package/.worktrees/pixels-platform-code/models/PolicyDogsImageCache.js +0 -30
  910. package/.worktrees/pixels-platform-code/models/Presets.js +0 -40
  911. package/.worktrees/pixels-platform-code/models/RSOCFeedCampaign.js +0 -375
  912. package/.worktrees/pixels-platform-code/models/RsocKeywordPerformance.js +0 -111
  913. package/.worktrees/pixels-platform-code/models/RuleAction.js +0 -90
  914. package/.worktrees/pixels-platform-code/models/RuleCondition.js +0 -137
  915. package/.worktrees/pixels-platform-code/models/RuleExecution.js +0 -107
  916. package/.worktrees/pixels-platform-code/models/RulesValues.js +0 -56
  917. package/.worktrees/pixels-platform-code/models/SupportedLocale.js +0 -24
  918. package/.worktrees/pixels-platform-code/models/SyncHistory.js +0 -250
  919. package/.worktrees/pixels-platform-code/models/TTQChannel.js +0 -42
  920. package/.worktrees/pixels-platform-code/models/TemplateMetadata.js +0 -260
  921. package/.worktrees/pixels-platform-code/models/Tier2_AdAccounts.js +0 -110
  922. package/.worktrees/pixels-platform-code/models/Tier2_Assets.js +0 -70
  923. package/.worktrees/pixels-platform-code/models/Tier2_BusinessManagers.js +0 -105
  924. package/.worktrees/pixels-platform-code/models/Tier2_CreditLines.js +0 -99
  925. package/.worktrees/pixels-platform-code/models/Tier2_Pages.js +0 -91
  926. package/.worktrees/pixels-platform-code/models/Tier2_Pixels.js +0 -82
  927. package/.worktrees/pixels-platform-code/models/Tier2_Tokens.js +0 -64
  928. package/.worktrees/pixels-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  929. package/.worktrees/pixels-platform-code/models/TokenRotationState.js +0 -121
  930. package/.worktrees/pixels-platform-code/models/TonicCampaign.js +0 -97
  931. package/.worktrees/pixels-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  932. package/.worktrees/pixels-platform-code/models/Users.js +0 -148
  933. package/.worktrees/pixels-platform-code/models/Vertical.js +0 -26
  934. package/.worktrees/pixels-platform-code/models/newFiles.js +0 -137
  935. package/.worktrees/pixels-platform-code/models/pixel.js +0 -53
  936. package/.worktrees/pixels-platform-code/package-lock.json +0 -405
  937. package/.worktrees/pixels-platform-code/package.json +0 -19
  938. package/.worktrees/pixels-platform-code/run.ps1 +0 -98
  939. package/.worktrees/pixels-platform-code/run.sh +0 -214
  940. package/.worktrees/pixels-platform-code/services/sequelizeService.js +0 -110
  941. package/.worktrees/rsoc-feed-campaigns-platform-code/LICENSE +0 -21
  942. package/.worktrees/rsoc-feed-campaigns-platform-code/README.md +0 -179
  943. package/.worktrees/rsoc-feed-campaigns-platform-code/index.js +0 -169
  944. package/.worktrees/rsoc-feed-campaigns-platform-code/jq.exe +0 -0
  945. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  946. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  947. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  948. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  949. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  950. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  951. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  952. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  953. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-article.js +0 -19
  954. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  955. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  956. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  957. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  958. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  959. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  960. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/2026-05-18-add-platform-code-to-rsoc-feed-campaigns.js +0 -55
  961. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  962. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  963. package/.worktrees/rsoc-feed-campaigns-platform-code/migrations/change-adset-name-to-text.js +0 -79
  964. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AICampaignQueue.js +0 -144
  965. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AIGenerationLog.js +0 -85
  966. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AIGenerationRequest.js +0 -212
  967. package/.worktrees/rsoc-feed-campaigns-platform-code/models/ActivityHistory.js +0 -73
  968. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Ad.js +0 -300
  969. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdAccount.js +0 -97
  970. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdAccountValues.js +0 -26
  971. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdHistory.js +0 -30
  972. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdPerformance.js +0 -100
  973. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdPerformanceHourly.js +0 -71
  974. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdSet.js +0 -295
  975. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdSetHistory.js +0 -30
  976. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AdsetPerformance.js +0 -132
  977. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AiArticleRetryQueue.js +0 -157
  978. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AiCreationRetryQueue.js +0 -127
  979. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Article.js +0 -212
  980. package/.worktrees/rsoc-feed-campaigns-platform-code/models/AutomationRule.js +0 -173
  981. package/.worktrees/rsoc-feed-campaigns-platform-code/models/BannerTemplate.js +0 -129
  982. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Buyers.js +0 -26
  983. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Campaign.js +0 -163
  984. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignActionHistory.js +0 -86
  985. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignCreationLog.js +0 -309
  986. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignCreationLogV2.js +0 -314
  987. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CampaignHistory.js +0 -33
  988. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Channel.js +0 -55
  989. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelCampaign.js +0 -175
  990. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelCampaignKWHistory.js +0 -41
  991. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CodefuelKeywords.js +0 -35
  992. package/.worktrees/rsoc-feed-campaigns-platform-code/models/CurrencyRate.js +0 -27
  993. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Domain.js +0 -40
  994. package/.worktrees/rsoc-feed-campaigns-platform-code/models/DynamicFeed.js +0 -219
  995. package/.worktrees/rsoc-feed-campaigns-platform-code/models/ExplorAdsChannel.js +0 -62
  996. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FacebookRetryQueue.js +0 -163
  997. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Feed.js +0 -34
  998. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FeedArticleConfiguration.js +0 -81
  999. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Files.js +0 -73
  1000. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Folders.js +0 -133
  1001. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FrontStoryChannel.js +0 -60
  1002. package/.worktrees/rsoc-feed-campaigns-platform-code/models/FrontStoryChannelV2.js +0 -60
  1003. package/.worktrees/rsoc-feed-campaigns-platform-code/models/GenericFlowRequest.js +0 -115
  1004. package/.worktrees/rsoc-feed-campaigns-platform-code/models/KeywordPerformance.js +0 -106
  1005. package/.worktrees/rsoc-feed-campaigns-platform-code/models/KeywordRotationState.js +0 -51
  1006. package/.worktrees/rsoc-feed-campaigns-platform-code/models/MidoWebChannel.js +0 -47
  1007. package/.worktrees/rsoc-feed-campaigns-platform-code/models/MineChannel.js +0 -43
  1008. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Pages.js +0 -105
  1009. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PipelineExecution.js +0 -59
  1010. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PolicyDogsCreativeCache.js +0 -50
  1011. package/.worktrees/rsoc-feed-campaigns-platform-code/models/PolicyDogsImageCache.js +0 -30
  1012. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Presets.js +0 -40
  1013. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RSOCFeedCampaign.js +0 -381
  1014. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RsocKeywordPerformance.js +0 -111
  1015. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleAction.js +0 -90
  1016. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleCondition.js +0 -137
  1017. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RuleExecution.js +0 -107
  1018. package/.worktrees/rsoc-feed-campaigns-platform-code/models/RulesValues.js +0 -56
  1019. package/.worktrees/rsoc-feed-campaigns-platform-code/models/SupportedLocale.js +0 -24
  1020. package/.worktrees/rsoc-feed-campaigns-platform-code/models/SyncHistory.js +0 -250
  1021. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TTQChannel.js +0 -42
  1022. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TemplateMetadata.js +0 -260
  1023. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_AdAccounts.js +0 -110
  1024. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Assets.js +0 -70
  1025. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_BusinessManagers.js +0 -105
  1026. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_CreditLines.js +0 -99
  1027. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Pages.js +0 -91
  1028. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Pixels.js +0 -82
  1029. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_Tokens.js +0 -64
  1030. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Tier2_UserAdAccounts.js +0 -83
  1031. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TokenRotationState.js +0 -121
  1032. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TonicCampaign.js +0 -97
  1033. package/.worktrees/rsoc-feed-campaigns-platform-code/models/TonicRSOCKeywordPerformance.js +0 -123
  1034. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Users.js +0 -148
  1035. package/.worktrees/rsoc-feed-campaigns-platform-code/models/Vertical.js +0 -26
  1036. package/.worktrees/rsoc-feed-campaigns-platform-code/models/newFiles.js +0 -137
  1037. package/.worktrees/rsoc-feed-campaigns-platform-code/models/pixel.js +0 -47
  1038. package/.worktrees/rsoc-feed-campaigns-platform-code/package-lock.json +0 -405
  1039. package/.worktrees/rsoc-feed-campaigns-platform-code/package.json +0 -19
  1040. package/.worktrees/rsoc-feed-campaigns-platform-code/run.ps1 +0 -98
  1041. package/.worktrees/rsoc-feed-campaigns-platform-code/run.sh +0 -214
  1042. package/.worktrees/rsoc-feed-campaigns-platform-code/services/sequelizeService.js +0 -110
  1043. package/.worktrees/tt-snp-adset-ad-tables/LICENSE +0 -21
  1044. package/.worktrees/tt-snp-adset-ad-tables/README.md +0 -179
  1045. package/.worktrees/tt-snp-adset-ad-tables/index.js +0 -169
  1046. package/.worktrees/tt-snp-adset-ad-tables/jq.exe +0 -0
  1047. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1048. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1049. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1050. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1051. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1052. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1053. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1054. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1055. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1056. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1057. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1058. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1059. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1060. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1061. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1062. package/.worktrees/tt-snp-adset-ad-tables/migrations/2026-05-18-create-tt-snp-adset-ad-tables.js +0 -309
  1063. package/.worktrees/tt-snp-adset-ad-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1064. package/.worktrees/tt-snp-adset-ad-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1065. package/.worktrees/tt-snp-adset-ad-tables/migrations/change-adset-name-to-text.js +0 -79
  1066. package/.worktrees/tt-snp-adset-ad-tables/models/AICampaignQueue.js +0 -144
  1067. package/.worktrees/tt-snp-adset-ad-tables/models/AIGenerationLog.js +0 -85
  1068. package/.worktrees/tt-snp-adset-ad-tables/models/AIGenerationRequest.js +0 -212
  1069. package/.worktrees/tt-snp-adset-ad-tables/models/ActivityHistory.js +0 -73
  1070. package/.worktrees/tt-snp-adset-ad-tables/models/Ad.js +0 -300
  1071. package/.worktrees/tt-snp-adset-ad-tables/models/AdAccount.js +0 -97
  1072. package/.worktrees/tt-snp-adset-ad-tables/models/AdAccountValues.js +0 -26
  1073. package/.worktrees/tt-snp-adset-ad-tables/models/AdHistory.js +0 -30
  1074. package/.worktrees/tt-snp-adset-ad-tables/models/AdPerformance.js +0 -100
  1075. package/.worktrees/tt-snp-adset-ad-tables/models/AdPerformanceHourly.js +0 -71
  1076. package/.worktrees/tt-snp-adset-ad-tables/models/AdSet.js +0 -295
  1077. package/.worktrees/tt-snp-adset-ad-tables/models/AdSetHistory.js +0 -30
  1078. package/.worktrees/tt-snp-adset-ad-tables/models/AdsetPerformance.js +0 -132
  1079. package/.worktrees/tt-snp-adset-ad-tables/models/AiArticleRetryQueue.js +0 -157
  1080. package/.worktrees/tt-snp-adset-ad-tables/models/AiCreationRetryQueue.js +0 -127
  1081. package/.worktrees/tt-snp-adset-ad-tables/models/Article.js +0 -212
  1082. package/.worktrees/tt-snp-adset-ad-tables/models/AutomationRule.js +0 -173
  1083. package/.worktrees/tt-snp-adset-ad-tables/models/BannerTemplate.js +0 -129
  1084. package/.worktrees/tt-snp-adset-ad-tables/models/Buyers.js +0 -26
  1085. package/.worktrees/tt-snp-adset-ad-tables/models/Campaign.js +0 -163
  1086. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignActionHistory.js +0 -86
  1087. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignCreationLog.js +0 -309
  1088. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignCreationLogV2.js +0 -314
  1089. package/.worktrees/tt-snp-adset-ad-tables/models/CampaignHistory.js +0 -33
  1090. package/.worktrees/tt-snp-adset-ad-tables/models/Channel.js +0 -55
  1091. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelCampaign.js +0 -175
  1092. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1093. package/.worktrees/tt-snp-adset-ad-tables/models/CodefuelKeywords.js +0 -35
  1094. package/.worktrees/tt-snp-adset-ad-tables/models/CurrencyRate.js +0 -27
  1095. package/.worktrees/tt-snp-adset-ad-tables/models/Domain.js +0 -40
  1096. package/.worktrees/tt-snp-adset-ad-tables/models/DynamicFeed.js +0 -219
  1097. package/.worktrees/tt-snp-adset-ad-tables/models/ExplorAdsChannel.js +0 -62
  1098. package/.worktrees/tt-snp-adset-ad-tables/models/FacebookRetryQueue.js +0 -163
  1099. package/.worktrees/tt-snp-adset-ad-tables/models/Feed.js +0 -34
  1100. package/.worktrees/tt-snp-adset-ad-tables/models/FeedArticleConfiguration.js +0 -81
  1101. package/.worktrees/tt-snp-adset-ad-tables/models/Files.js +0 -73
  1102. package/.worktrees/tt-snp-adset-ad-tables/models/Folders.js +0 -133
  1103. package/.worktrees/tt-snp-adset-ad-tables/models/FrontStoryChannel.js +0 -60
  1104. package/.worktrees/tt-snp-adset-ad-tables/models/FrontStoryChannelV2.js +0 -60
  1105. package/.worktrees/tt-snp-adset-ad-tables/models/GenericFlowRequest.js +0 -115
  1106. package/.worktrees/tt-snp-adset-ad-tables/models/KeywordPerformance.js +0 -106
  1107. package/.worktrees/tt-snp-adset-ad-tables/models/KeywordRotationState.js +0 -51
  1108. package/.worktrees/tt-snp-adset-ad-tables/models/MidoWebChannel.js +0 -47
  1109. package/.worktrees/tt-snp-adset-ad-tables/models/MineChannel.js +0 -43
  1110. package/.worktrees/tt-snp-adset-ad-tables/models/Pages.js +0 -105
  1111. package/.worktrees/tt-snp-adset-ad-tables/models/PipelineExecution.js +0 -59
  1112. package/.worktrees/tt-snp-adset-ad-tables/models/PolicyDogsCreativeCache.js +0 -50
  1113. package/.worktrees/tt-snp-adset-ad-tables/models/PolicyDogsImageCache.js +0 -30
  1114. package/.worktrees/tt-snp-adset-ad-tables/models/Presets.js +0 -40
  1115. package/.worktrees/tt-snp-adset-ad-tables/models/RSOCFeedCampaign.js +0 -375
  1116. package/.worktrees/tt-snp-adset-ad-tables/models/RsocKeywordPerformance.js +0 -111
  1117. package/.worktrees/tt-snp-adset-ad-tables/models/RuleAction.js +0 -90
  1118. package/.worktrees/tt-snp-adset-ad-tables/models/RuleCondition.js +0 -137
  1119. package/.worktrees/tt-snp-adset-ad-tables/models/RuleExecution.js +0 -107
  1120. package/.worktrees/tt-snp-adset-ad-tables/models/RulesValues.js +0 -56
  1121. package/.worktrees/tt-snp-adset-ad-tables/models/SnapchatAd.js +0 -69
  1122. package/.worktrees/tt-snp-adset-ad-tables/models/SnapchatAdSquad.js +0 -92
  1123. package/.worktrees/tt-snp-adset-ad-tables/models/SupportedLocale.js +0 -24
  1124. package/.worktrees/tt-snp-adset-ad-tables/models/SyncHistory.js +0 -250
  1125. package/.worktrees/tt-snp-adset-ad-tables/models/TTQChannel.js +0 -42
  1126. package/.worktrees/tt-snp-adset-ad-tables/models/TemplateMetadata.js +0 -260
  1127. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_AdAccounts.js +0 -110
  1128. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Assets.js +0 -70
  1129. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_BusinessManagers.js +0 -105
  1130. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_CreditLines.js +0 -99
  1131. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Pages.js +0 -91
  1132. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Pixels.js +0 -82
  1133. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_Tokens.js +0 -64
  1134. package/.worktrees/tt-snp-adset-ad-tables/models/Tier2_UserAdAccounts.js +0 -83
  1135. package/.worktrees/tt-snp-adset-ad-tables/models/TikTokAd.js +0 -71
  1136. package/.worktrees/tt-snp-adset-ad-tables/models/TikTokAdGroup.js +0 -82
  1137. package/.worktrees/tt-snp-adset-ad-tables/models/TokenRotationState.js +0 -121
  1138. package/.worktrees/tt-snp-adset-ad-tables/models/TonicCampaign.js +0 -97
  1139. package/.worktrees/tt-snp-adset-ad-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1140. package/.worktrees/tt-snp-adset-ad-tables/models/Users.js +0 -148
  1141. package/.worktrees/tt-snp-adset-ad-tables/models/Vertical.js +0 -26
  1142. package/.worktrees/tt-snp-adset-ad-tables/models/newFiles.js +0 -137
  1143. package/.worktrees/tt-snp-adset-ad-tables/models/pixel.js +0 -47
  1144. package/.worktrees/tt-snp-adset-ad-tables/package-lock.json +0 -405
  1145. package/.worktrees/tt-snp-adset-ad-tables/package.json +0 -19
  1146. package/.worktrees/tt-snp-adset-ad-tables/run.ps1 +0 -98
  1147. package/.worktrees/tt-snp-adset-ad-tables/run.sh +0 -214
  1148. package/.worktrees/tt-snp-adset-ad-tables/services/sequelizeService.js +0 -110
  1149. package/.worktrees/tt-snp-asset-tables/LICENSE +0 -21
  1150. package/.worktrees/tt-snp-asset-tables/README.md +0 -179
  1151. package/.worktrees/tt-snp-asset-tables/index.js +0 -169
  1152. package/.worktrees/tt-snp-asset-tables/jq.exe +0 -0
  1153. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1154. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1155. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1156. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1157. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1158. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1159. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1160. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1161. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1162. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1163. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1164. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1165. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1166. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1167. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1168. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-18-create-snapchat-public-profiles.js +0 -68
  1169. package/.worktrees/tt-snp-asset-tables/migrations/2026-05-18-create-tiktok-identities.js +0 -71
  1170. package/.worktrees/tt-snp-asset-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1171. package/.worktrees/tt-snp-asset-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1172. package/.worktrees/tt-snp-asset-tables/migrations/change-adset-name-to-text.js +0 -79
  1173. package/.worktrees/tt-snp-asset-tables/models/AICampaignQueue.js +0 -144
  1174. package/.worktrees/tt-snp-asset-tables/models/AIGenerationLog.js +0 -85
  1175. package/.worktrees/tt-snp-asset-tables/models/AIGenerationRequest.js +0 -212
  1176. package/.worktrees/tt-snp-asset-tables/models/ActivityHistory.js +0 -73
  1177. package/.worktrees/tt-snp-asset-tables/models/Ad.js +0 -300
  1178. package/.worktrees/tt-snp-asset-tables/models/AdAccount.js +0 -97
  1179. package/.worktrees/tt-snp-asset-tables/models/AdAccountValues.js +0 -26
  1180. package/.worktrees/tt-snp-asset-tables/models/AdHistory.js +0 -30
  1181. package/.worktrees/tt-snp-asset-tables/models/AdPerformance.js +0 -100
  1182. package/.worktrees/tt-snp-asset-tables/models/AdPerformanceHourly.js +0 -71
  1183. package/.worktrees/tt-snp-asset-tables/models/AdSet.js +0 -295
  1184. package/.worktrees/tt-snp-asset-tables/models/AdSetHistory.js +0 -30
  1185. package/.worktrees/tt-snp-asset-tables/models/AdsetPerformance.js +0 -132
  1186. package/.worktrees/tt-snp-asset-tables/models/AiArticleRetryQueue.js +0 -157
  1187. package/.worktrees/tt-snp-asset-tables/models/AiCreationRetryQueue.js +0 -127
  1188. package/.worktrees/tt-snp-asset-tables/models/Article.js +0 -212
  1189. package/.worktrees/tt-snp-asset-tables/models/AutomationRule.js +0 -173
  1190. package/.worktrees/tt-snp-asset-tables/models/BannerTemplate.js +0 -129
  1191. package/.worktrees/tt-snp-asset-tables/models/Buyers.js +0 -26
  1192. package/.worktrees/tt-snp-asset-tables/models/Campaign.js +0 -163
  1193. package/.worktrees/tt-snp-asset-tables/models/CampaignActionHistory.js +0 -86
  1194. package/.worktrees/tt-snp-asset-tables/models/CampaignCreationLog.js +0 -309
  1195. package/.worktrees/tt-snp-asset-tables/models/CampaignCreationLogV2.js +0 -314
  1196. package/.worktrees/tt-snp-asset-tables/models/CampaignHistory.js +0 -33
  1197. package/.worktrees/tt-snp-asset-tables/models/Channel.js +0 -55
  1198. package/.worktrees/tt-snp-asset-tables/models/CodefuelCampaign.js +0 -175
  1199. package/.worktrees/tt-snp-asset-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1200. package/.worktrees/tt-snp-asset-tables/models/CodefuelKeywords.js +0 -35
  1201. package/.worktrees/tt-snp-asset-tables/models/CurrencyRate.js +0 -27
  1202. package/.worktrees/tt-snp-asset-tables/models/Domain.js +0 -40
  1203. package/.worktrees/tt-snp-asset-tables/models/DynamicFeed.js +0 -219
  1204. package/.worktrees/tt-snp-asset-tables/models/ExplorAdsChannel.js +0 -62
  1205. package/.worktrees/tt-snp-asset-tables/models/FacebookRetryQueue.js +0 -163
  1206. package/.worktrees/tt-snp-asset-tables/models/Feed.js +0 -34
  1207. package/.worktrees/tt-snp-asset-tables/models/FeedArticleConfiguration.js +0 -81
  1208. package/.worktrees/tt-snp-asset-tables/models/Files.js +0 -73
  1209. package/.worktrees/tt-snp-asset-tables/models/Folders.js +0 -133
  1210. package/.worktrees/tt-snp-asset-tables/models/FrontStoryChannel.js +0 -60
  1211. package/.worktrees/tt-snp-asset-tables/models/FrontStoryChannelV2.js +0 -60
  1212. package/.worktrees/tt-snp-asset-tables/models/GenericFlowRequest.js +0 -115
  1213. package/.worktrees/tt-snp-asset-tables/models/KeywordPerformance.js +0 -106
  1214. package/.worktrees/tt-snp-asset-tables/models/KeywordRotationState.js +0 -51
  1215. package/.worktrees/tt-snp-asset-tables/models/MidoWebChannel.js +0 -47
  1216. package/.worktrees/tt-snp-asset-tables/models/MineChannel.js +0 -43
  1217. package/.worktrees/tt-snp-asset-tables/models/Pages.js +0 -105
  1218. package/.worktrees/tt-snp-asset-tables/models/PipelineExecution.js +0 -59
  1219. package/.worktrees/tt-snp-asset-tables/models/PolicyDogsCreativeCache.js +0 -50
  1220. package/.worktrees/tt-snp-asset-tables/models/PolicyDogsImageCache.js +0 -30
  1221. package/.worktrees/tt-snp-asset-tables/models/Presets.js +0 -40
  1222. package/.worktrees/tt-snp-asset-tables/models/RSOCFeedCampaign.js +0 -375
  1223. package/.worktrees/tt-snp-asset-tables/models/RsocKeywordPerformance.js +0 -111
  1224. package/.worktrees/tt-snp-asset-tables/models/RuleAction.js +0 -90
  1225. package/.worktrees/tt-snp-asset-tables/models/RuleCondition.js +0 -137
  1226. package/.worktrees/tt-snp-asset-tables/models/RuleExecution.js +0 -107
  1227. package/.worktrees/tt-snp-asset-tables/models/RulesValues.js +0 -56
  1228. package/.worktrees/tt-snp-asset-tables/models/SnapchatPublicProfiles.js +0 -47
  1229. package/.worktrees/tt-snp-asset-tables/models/SupportedLocale.js +0 -24
  1230. package/.worktrees/tt-snp-asset-tables/models/SyncHistory.js +0 -250
  1231. package/.worktrees/tt-snp-asset-tables/models/TTQChannel.js +0 -42
  1232. package/.worktrees/tt-snp-asset-tables/models/TemplateMetadata.js +0 -260
  1233. package/.worktrees/tt-snp-asset-tables/models/Tier2_AdAccounts.js +0 -110
  1234. package/.worktrees/tt-snp-asset-tables/models/Tier2_Assets.js +0 -70
  1235. package/.worktrees/tt-snp-asset-tables/models/Tier2_BusinessManagers.js +0 -105
  1236. package/.worktrees/tt-snp-asset-tables/models/Tier2_CreditLines.js +0 -99
  1237. package/.worktrees/tt-snp-asset-tables/models/Tier2_Pages.js +0 -91
  1238. package/.worktrees/tt-snp-asset-tables/models/Tier2_Pixels.js +0 -82
  1239. package/.worktrees/tt-snp-asset-tables/models/Tier2_Tokens.js +0 -64
  1240. package/.worktrees/tt-snp-asset-tables/models/Tier2_UserAdAccounts.js +0 -83
  1241. package/.worktrees/tt-snp-asset-tables/models/TiktokIdentities.js +0 -51
  1242. package/.worktrees/tt-snp-asset-tables/models/TokenRotationState.js +0 -121
  1243. package/.worktrees/tt-snp-asset-tables/models/TonicCampaign.js +0 -97
  1244. package/.worktrees/tt-snp-asset-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1245. package/.worktrees/tt-snp-asset-tables/models/Users.js +0 -148
  1246. package/.worktrees/tt-snp-asset-tables/models/Vertical.js +0 -26
  1247. package/.worktrees/tt-snp-asset-tables/models/newFiles.js +0 -137
  1248. package/.worktrees/tt-snp-asset-tables/models/pixel.js +0 -47
  1249. package/.worktrees/tt-snp-asset-tables/package-lock.json +0 -405
  1250. package/.worktrees/tt-snp-asset-tables/package.json +0 -19
  1251. package/.worktrees/tt-snp-asset-tables/run.ps1 +0 -98
  1252. package/.worktrees/tt-snp-asset-tables/run.sh +0 -214
  1253. package/.worktrees/tt-snp-asset-tables/services/sequelizeService.js +0 -110
  1254. package/.worktrees/tt-snp-campaign-tables/LICENSE +0 -21
  1255. package/.worktrees/tt-snp-campaign-tables/README.md +0 -179
  1256. package/.worktrees/tt-snp-campaign-tables/index.js +0 -169
  1257. package/.worktrees/tt-snp-campaign-tables/jq.exe +0 -0
  1258. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-PIXELS-FOLLOWUP.md +0 -85
  1259. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-ad.js +0 -19
  1260. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adaccount.js +0 -19
  1261. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adperformance.js +0 -19
  1262. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adset.js +0 -19
  1263. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-adsetperformance.js +0 -19
  1264. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-aiarticleretryqueue.js +0 -19
  1265. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-aicampaignqueue.js +0 -19
  1266. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-article.js +0 -19
  1267. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-campaign.js +0 -19
  1268. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-codefuelcampaign.js +0 -19
  1269. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-dynamicfeed.js +0 -19
  1270. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-facebookretryqueue.js +0 -19
  1271. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-pages.js +0 -19
  1272. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-17-add-platform-to-presets.js +0 -19
  1273. package/.worktrees/tt-snp-campaign-tables/migrations/2026-05-18-create-tiktok-snapchat-campaigns.js +0 -143
  1274. package/.worktrees/tt-snp-campaign-tables/migrations/RUN_ME_MANUALLY_2026-05-17.sql +0 -99
  1275. package/.worktrees/tt-snp-campaign-tables/migrations/add-requested-from-dashboard-to-articles.js +0 -17
  1276. package/.worktrees/tt-snp-campaign-tables/migrations/change-adset-name-to-text.js +0 -79
  1277. package/.worktrees/tt-snp-campaign-tables/models/AICampaignQueue.js +0 -144
  1278. package/.worktrees/tt-snp-campaign-tables/models/AIGenerationLog.js +0 -85
  1279. package/.worktrees/tt-snp-campaign-tables/models/AIGenerationRequest.js +0 -212
  1280. package/.worktrees/tt-snp-campaign-tables/models/ActivityHistory.js +0 -73
  1281. package/.worktrees/tt-snp-campaign-tables/models/Ad.js +0 -300
  1282. package/.worktrees/tt-snp-campaign-tables/models/AdAccount.js +0 -97
  1283. package/.worktrees/tt-snp-campaign-tables/models/AdAccountValues.js +0 -26
  1284. package/.worktrees/tt-snp-campaign-tables/models/AdHistory.js +0 -30
  1285. package/.worktrees/tt-snp-campaign-tables/models/AdPerformance.js +0 -100
  1286. package/.worktrees/tt-snp-campaign-tables/models/AdPerformanceHourly.js +0 -71
  1287. package/.worktrees/tt-snp-campaign-tables/models/AdSet.js +0 -295
  1288. package/.worktrees/tt-snp-campaign-tables/models/AdSetHistory.js +0 -30
  1289. package/.worktrees/tt-snp-campaign-tables/models/AdsetPerformance.js +0 -132
  1290. package/.worktrees/tt-snp-campaign-tables/models/AiArticleRetryQueue.js +0 -157
  1291. package/.worktrees/tt-snp-campaign-tables/models/AiCreationRetryQueue.js +0 -127
  1292. package/.worktrees/tt-snp-campaign-tables/models/Article.js +0 -212
  1293. package/.worktrees/tt-snp-campaign-tables/models/AutomationRule.js +0 -173
  1294. package/.worktrees/tt-snp-campaign-tables/models/BannerTemplate.js +0 -129
  1295. package/.worktrees/tt-snp-campaign-tables/models/Buyers.js +0 -26
  1296. package/.worktrees/tt-snp-campaign-tables/models/Campaign.js +0 -163
  1297. package/.worktrees/tt-snp-campaign-tables/models/CampaignActionHistory.js +0 -86
  1298. package/.worktrees/tt-snp-campaign-tables/models/CampaignCreationLog.js +0 -309
  1299. package/.worktrees/tt-snp-campaign-tables/models/CampaignCreationLogV2.js +0 -314
  1300. package/.worktrees/tt-snp-campaign-tables/models/CampaignHistory.js +0 -33
  1301. package/.worktrees/tt-snp-campaign-tables/models/Channel.js +0 -55
  1302. package/.worktrees/tt-snp-campaign-tables/models/CodefuelCampaign.js +0 -175
  1303. package/.worktrees/tt-snp-campaign-tables/models/CodefuelCampaignKWHistory.js +0 -41
  1304. package/.worktrees/tt-snp-campaign-tables/models/CodefuelKeywords.js +0 -35
  1305. package/.worktrees/tt-snp-campaign-tables/models/CurrencyRate.js +0 -27
  1306. package/.worktrees/tt-snp-campaign-tables/models/Domain.js +0 -40
  1307. package/.worktrees/tt-snp-campaign-tables/models/DynamicFeed.js +0 -219
  1308. package/.worktrees/tt-snp-campaign-tables/models/ExplorAdsChannel.js +0 -62
  1309. package/.worktrees/tt-snp-campaign-tables/models/FacebookRetryQueue.js +0 -163
  1310. package/.worktrees/tt-snp-campaign-tables/models/Feed.js +0 -34
  1311. package/.worktrees/tt-snp-campaign-tables/models/FeedArticleConfiguration.js +0 -81
  1312. package/.worktrees/tt-snp-campaign-tables/models/Files.js +0 -73
  1313. package/.worktrees/tt-snp-campaign-tables/models/Folders.js +0 -133
  1314. package/.worktrees/tt-snp-campaign-tables/models/FrontStoryChannel.js +0 -60
  1315. package/.worktrees/tt-snp-campaign-tables/models/FrontStoryChannelV2.js +0 -60
  1316. package/.worktrees/tt-snp-campaign-tables/models/GenericFlowRequest.js +0 -115
  1317. package/.worktrees/tt-snp-campaign-tables/models/KeywordPerformance.js +0 -106
  1318. package/.worktrees/tt-snp-campaign-tables/models/KeywordRotationState.js +0 -51
  1319. package/.worktrees/tt-snp-campaign-tables/models/MidoWebChannel.js +0 -47
  1320. package/.worktrees/tt-snp-campaign-tables/models/MineChannel.js +0 -43
  1321. package/.worktrees/tt-snp-campaign-tables/models/Pages.js +0 -105
  1322. package/.worktrees/tt-snp-campaign-tables/models/PipelineExecution.js +0 -59
  1323. package/.worktrees/tt-snp-campaign-tables/models/PolicyDogsCreativeCache.js +0 -50
  1324. package/.worktrees/tt-snp-campaign-tables/models/PolicyDogsImageCache.js +0 -30
  1325. package/.worktrees/tt-snp-campaign-tables/models/Presets.js +0 -40
  1326. package/.worktrees/tt-snp-campaign-tables/models/RSOCFeedCampaign.js +0 -375
  1327. package/.worktrees/tt-snp-campaign-tables/models/RsocKeywordPerformance.js +0 -111
  1328. package/.worktrees/tt-snp-campaign-tables/models/RuleAction.js +0 -90
  1329. package/.worktrees/tt-snp-campaign-tables/models/RuleCondition.js +0 -137
  1330. package/.worktrees/tt-snp-campaign-tables/models/RuleExecution.js +0 -107
  1331. package/.worktrees/tt-snp-campaign-tables/models/RulesValues.js +0 -56
  1332. package/.worktrees/tt-snp-campaign-tables/models/SnapchatCampaign.js +0 -69
  1333. package/.worktrees/tt-snp-campaign-tables/models/SupportedLocale.js +0 -24
  1334. package/.worktrees/tt-snp-campaign-tables/models/SyncHistory.js +0 -250
  1335. package/.worktrees/tt-snp-campaign-tables/models/TTQChannel.js +0 -42
  1336. package/.worktrees/tt-snp-campaign-tables/models/TemplateMetadata.js +0 -260
  1337. package/.worktrees/tt-snp-campaign-tables/models/Tier2_AdAccounts.js +0 -110
  1338. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Assets.js +0 -70
  1339. package/.worktrees/tt-snp-campaign-tables/models/Tier2_BusinessManagers.js +0 -105
  1340. package/.worktrees/tt-snp-campaign-tables/models/Tier2_CreditLines.js +0 -99
  1341. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Pages.js +0 -91
  1342. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Pixels.js +0 -82
  1343. package/.worktrees/tt-snp-campaign-tables/models/Tier2_Tokens.js +0 -64
  1344. package/.worktrees/tt-snp-campaign-tables/models/Tier2_UserAdAccounts.js +0 -83
  1345. package/.worktrees/tt-snp-campaign-tables/models/TikTokCampaign.js +0 -71
  1346. package/.worktrees/tt-snp-campaign-tables/models/TokenRotationState.js +0 -121
  1347. package/.worktrees/tt-snp-campaign-tables/models/TonicCampaign.js +0 -97
  1348. package/.worktrees/tt-snp-campaign-tables/models/TonicRSOCKeywordPerformance.js +0 -123
  1349. package/.worktrees/tt-snp-campaign-tables/models/Users.js +0 -148
  1350. package/.worktrees/tt-snp-campaign-tables/models/Vertical.js +0 -26
  1351. package/.worktrees/tt-snp-campaign-tables/models/newFiles.js +0 -137
  1352. package/.worktrees/tt-snp-campaign-tables/models/pixel.js +0 -47
  1353. package/.worktrees/tt-snp-campaign-tables/package-lock.json +0 -405
  1354. package/.worktrees/tt-snp-campaign-tables/package.json +0 -19
  1355. package/.worktrees/tt-snp-campaign-tables/run.ps1 +0 -98
  1356. package/.worktrees/tt-snp-campaign-tables/run.sh +0 -214
  1357. 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.