adserver-dashboard 1.0.0

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 (525) hide show
  1. package/.ci/staging.yml +191 -0
  2. package/.dockerignore +117 -0
  3. package/.env +40 -0
  4. package/.env.staging +38 -0
  5. package/.gitlab-ci.yml +16 -0
  6. package/DEMO_STATUS.md +579 -0
  7. package/Dockerfile +61 -0
  8. package/Influence-MW-AdServer-12-02-2026/client/index.html +17 -0
  9. package/Influence-MW-AdServer-12-02-2026/client/public/favicon.png +0 -0
  10. package/Influence-MW-AdServer-12-02-2026/client/src/App.tsx +91 -0
  11. package/Influence-MW-AdServer-12-02-2026/client/src/components/advanced-map-drawer.tsx +1131 -0
  12. package/Influence-MW-AdServer-12-02-2026/client/src/components/ai-recommendation-panel.tsx +379 -0
  13. package/Influence-MW-AdServer-12-02-2026/client/src/components/app-sidebar.tsx +183 -0
  14. package/Influence-MW-AdServer-12-02-2026/client/src/components/auto-optimize-button.tsx +184 -0
  15. package/Influence-MW-AdServer-12-02-2026/client/src/components/availability-drawer.tsx +385 -0
  16. package/Influence-MW-AdServer-12-02-2026/client/src/components/brand-insights-panel.tsx +87 -0
  17. package/Influence-MW-AdServer-12-02-2026/client/src/components/create-agency-drawer.tsx +198 -0
  18. package/Influence-MW-AdServer-12-02-2026/client/src/components/create-brand-drawer.tsx +275 -0
  19. package/Influence-MW-AdServer-12-02-2026/client/src/components/creative-assignment.tsx +526 -0
  20. package/Influence-MW-AdServer-12-02-2026/client/src/components/data-table-toolbar.tsx +148 -0
  21. package/Influence-MW-AdServer-12-02-2026/client/src/components/data-table.tsx +158 -0
  22. package/Influence-MW-AdServer-12-02-2026/client/src/components/filter-drawer.tsx +356 -0
  23. package/Influence-MW-AdServer-12-02-2026/client/src/components/form-insights-panel.tsx +82 -0
  24. package/Influence-MW-AdServer-12-02-2026/client/src/components/geography-selector.tsx +699 -0
  25. package/Influence-MW-AdServer-12-02-2026/client/src/components/header-user-menu.tsx +178 -0
  26. package/Influence-MW-AdServer-12-02-2026/client/src/components/history-drawer.tsx +313 -0
  27. package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-availability-section.tsx +176 -0
  28. package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-format-drawer.tsx +173 -0
  29. package/Influence-MW-AdServer-12-02-2026/client/src/components/inventory-selector.tsx +401 -0
  30. package/Influence-MW-AdServer-12-02-2026/client/src/components/manual-inventory-drawer.tsx +368 -0
  31. package/Influence-MW-AdServer-12-02-2026/client/src/components/mapbox-map.tsx +368 -0
  32. package/Influence-MW-AdServer-12-02-2026/client/src/components/market-insights-panel.tsx +202 -0
  33. package/Influence-MW-AdServer-12-02-2026/client/src/components/media-owner-drawer.tsx +217 -0
  34. package/Influence-MW-AdServer-12-02-2026/client/src/components/metric-card.tsx +58 -0
  35. package/Influence-MW-AdServer-12-02-2026/client/src/components/page-header.tsx +27 -0
  36. package/Influence-MW-AdServer-12-02-2026/client/src/components/player-status-indicator.tsx +137 -0
  37. package/Influence-MW-AdServer-12-02-2026/client/src/components/poi-targeting-drawer.tsx +298 -0
  38. package/Influence-MW-AdServer-12-02-2026/client/src/components/recommendation-score-badge.tsx +102 -0
  39. package/Influence-MW-AdServer-12-02-2026/client/src/components/recommended-inventories-panel.tsx +248 -0
  40. package/Influence-MW-AdServer-12-02-2026/client/src/components/searchable-combobox.tsx +134 -0
  41. package/Influence-MW-AdServer-12-02-2026/client/src/components/signal-visualizations.tsx +407 -0
  42. package/Influence-MW-AdServer-12-02-2026/client/src/components/status-badge.tsx +35 -0
  43. package/Influence-MW-AdServer-12-02-2026/client/src/components/theme-provider.tsx +73 -0
  44. package/Influence-MW-AdServer-12-02-2026/client/src/components/theme-toggle.tsx +37 -0
  45. package/Influence-MW-AdServer-12-02-2026/client/src/components/traffic-slider.tsx +75 -0
  46. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/accordion.tsx +56 -0
  47. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/alert-dialog.tsx +139 -0
  48. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/alert.tsx +59 -0
  49. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/aspect-ratio.tsx +5 -0
  50. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/avatar.tsx +51 -0
  51. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/badge.tsx +38 -0
  52. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/breadcrumb.tsx +115 -0
  53. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/button.tsx +62 -0
  54. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/calendar.tsx +68 -0
  55. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/card.tsx +85 -0
  56. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/carousel.tsx +260 -0
  57. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/chart.tsx +365 -0
  58. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/checkbox.tsx +28 -0
  59. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/collapsible.tsx +11 -0
  60. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/command.tsx +151 -0
  61. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/context-menu.tsx +198 -0
  62. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/dialog.tsx +122 -0
  63. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/drawer.tsx +118 -0
  64. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/dropdown-menu.tsx +198 -0
  65. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/form.tsx +178 -0
  66. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/hover-card.tsx +29 -0
  67. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/input-otp.tsx +69 -0
  68. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/input.tsx +23 -0
  69. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/label.tsx +24 -0
  70. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/menubar.tsx +256 -0
  71. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/navigation-menu.tsx +128 -0
  72. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/pagination.tsx +117 -0
  73. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/popover.tsx +29 -0
  74. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/progress.tsx +28 -0
  75. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/radio-group.tsx +42 -0
  76. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/resizable.tsx +45 -0
  77. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/scroll-area.tsx +46 -0
  78. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/select.tsx +160 -0
  79. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/separator.tsx +29 -0
  80. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/sheet.tsx +140 -0
  81. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/sidebar.tsx +727 -0
  82. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/skeleton.tsx +15 -0
  83. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/slider.tsx +26 -0
  84. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/switch.tsx +27 -0
  85. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/table.tsx +117 -0
  86. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/tabs.tsx +53 -0
  87. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/textarea.tsx +22 -0
  88. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toast.tsx +127 -0
  89. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toaster.tsx +33 -0
  90. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toggle-group.tsx +61 -0
  91. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/toggle.tsx +43 -0
  92. package/Influence-MW-AdServer-12-02-2026/client/src/components/ui/tooltip.tsx +30 -0
  93. package/Influence-MW-AdServer-12-02-2026/client/src/components/vendor-stores-modal.tsx +336 -0
  94. package/Influence-MW-AdServer-12-02-2026/client/src/components/venue-type-drawer.tsx +359 -0
  95. package/Influence-MW-AdServer-12-02-2026/client/src/components/venue-type-selector.tsx +436 -0
  96. package/Influence-MW-AdServer-12-02-2026/client/src/hooks/use-mobile.tsx +19 -0
  97. package/Influence-MW-AdServer-12-02-2026/client/src/hooks/use-toast.ts +191 -0
  98. package/Influence-MW-AdServer-12-02-2026/client/src/index.css +244 -0
  99. package/Influence-MW-AdServer-12-02-2026/client/src/lib/queryClient.ts +57 -0
  100. package/Influence-MW-AdServer-12-02-2026/client/src/lib/utils.ts +39 -0
  101. package/Influence-MW-AdServer-12-02-2026/client/src/lib/venue-taxonomy.ts +532 -0
  102. package/Influence-MW-AdServer-12-02-2026/client/src/main.tsx +5 -0
  103. package/Influence-MW-AdServer-12-02-2026/client/src/pages/assign-creative.tsx +781 -0
  104. package/Influence-MW-AdServer-12-02-2026/client/src/pages/content-hub.tsx +995 -0
  105. package/Influence-MW-AdServer-12-02-2026/client/src/pages/custom-pois.tsx +431 -0
  106. package/Influence-MW-AdServer-12-02-2026/client/src/pages/dashboard.tsx +620 -0
  107. package/Influence-MW-AdServer-12-02-2026/client/src/pages/deal-detail.tsx +1062 -0
  108. package/Influence-MW-AdServer-12-02-2026/client/src/pages/deal-form.tsx +1570 -0
  109. package/Influence-MW-AdServer-12-02-2026/client/src/pages/deals.tsx +716 -0
  110. package/Influence-MW-AdServer-12-02-2026/client/src/pages/edit-creative-assignment.tsx +1051 -0
  111. package/Influence-MW-AdServer-12-02-2026/client/src/pages/geotargeting.tsx +675 -0
  112. package/Influence-MW-AdServer-12-02-2026/client/src/pages/integrations.tsx +425 -0
  113. package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-item-creatives.tsx +622 -0
  114. package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-item-form.tsx +3132 -0
  115. package/Influence-MW-AdServer-12-02-2026/client/src/pages/line-items.tsx +530 -0
  116. package/Influence-MW-AdServer-12-02-2026/client/src/pages/not-found.tsx +21 -0
  117. package/Influence-MW-AdServer-12-02-2026/client/src/pages/proof-of-play-upload.tsx +479 -0
  118. package/Influence-MW-AdServer-12-02-2026/client/src/pages/proof-of-play.tsx +880 -0
  119. package/Influence-MW-AdServer-12-02-2026/client/src/pages/reports.tsx +235 -0
  120. package/Influence-MW-AdServer-12-02-2026/client/src/pages/settings.tsx +652 -0
  121. package/Influence-MW-AdServer-12-02-2026/client/src/pages/signal-form.tsx +1117 -0
  122. package/Influence-MW-AdServer-12-02-2026/client/src/pages/signals.tsx +366 -0
  123. package/Influence-MW-AdServer-12-02-2026/client/src/pages/tags.tsx +332 -0
  124. package/Influence-MW-AdServer-12-02-2026/client/src/pages/venues.tsx +381 -0
  125. package/Influence-MW-AdServer-12-02-2026/client/src/types/mapbox-gl-draw.d.ts +37 -0
  126. package/Influence-MW-AdServer-12-02-2026/client/src/types/react-simple-maps.d.ts +57 -0
  127. package/Influence-MW-AdServer-12-02-2026/components.json +20 -0
  128. package/Influence-MW-AdServer-12-02-2026/docs/PRD.md +3373 -0
  129. package/Influence-MW-AdServer-12-02-2026/docs/influence-feature-mapping.csv +498 -0
  130. package/Influence-MW-AdServer-12-02-2026/drizzle.config.ts +14 -0
  131. package/Influence-MW-AdServer-12-02-2026/package-lock.json +9672 -0
  132. package/Influence-MW-AdServer-12-02-2026/package.json +118 -0
  133. package/Influence-MW-AdServer-12-02-2026/postcss.config.js +6 -0
  134. package/Influence-MW-AdServer-12-02-2026/replit.md +91 -0
  135. package/Influence-MW-AdServer-12-02-2026/script/build.ts +67 -0
  136. package/Influence-MW-AdServer-12-02-2026/scripts/create-miro-diagrams.cjs +318 -0
  137. package/Influence-MW-AdServer-12-02-2026/scripts/create-remaining-diagrams.cjs +270 -0
  138. package/Influence-MW-AdServer-12-02-2026/server/index.ts +103 -0
  139. package/Influence-MW-AdServer-12-02-2026/server/recommendation-service.ts +319 -0
  140. package/Influence-MW-AdServer-12-02-2026/server/routes.ts +1890 -0
  141. package/Influence-MW-AdServer-12-02-2026/server/static.ts +19 -0
  142. package/Influence-MW-AdServer-12-02-2026/server/storage.ts +2058 -0
  143. package/Influence-MW-AdServer-12-02-2026/server/vite.ts +58 -0
  144. package/Influence-MW-AdServer-12-02-2026/shared/schema.ts +1595 -0
  145. package/Influence-MW-AdServer-12-02-2026/tailwind.config.ts +107 -0
  146. package/Influence-MW-AdServer-12-02-2026/tsconfig.json +23 -0
  147. package/Influence-MW-AdServer-12-02-2026/vite.config.ts +40 -0
  148. package/LINE_ITEM_BUDGET_FIELD_MAPPING.md +178 -0
  149. package/PCM/.env.example +92 -0
  150. package/PCM/README.md +558 -0
  151. package/PCM/docs/TEST_CASES.md +422 -0
  152. package/PCM/index.js +106 -0
  153. package/PCM/package-lock.json +3282 -0
  154. package/PCM/package.json +32 -0
  155. package/PCM/replit.md +64 -0
  156. package/PCM/schema.sql +495 -0
  157. package/PCM/scripts/export-schema.js +183 -0
  158. package/PCM/scripts/seed-comprehensive.js +631 -0
  159. package/PCM/scripts/seed-production.js +477 -0
  160. package/PCM/src/config/db.js +56 -0
  161. package/PCM/src/config/swagger.js +5975 -0
  162. package/PCM/src/dto/EmailRequestDTO.js +166 -0
  163. package/PCM/src/middleware/errorHandler.js +52 -0
  164. package/PCM/src/middleware/logger.js +26 -0
  165. package/PCM/src/migrations/001_add_campaign_mode_fields.sql +36 -0
  166. package/PCM/src/migrations/002_create_deal_id_counters.sql +22 -0
  167. package/PCM/src/migrations/003_update_publishers_column.sql +15 -0
  168. package/PCM/src/migrations/004_add_direct_dealtype_and_advertiser.sql +5 -0
  169. package/PCM/src/migrations/005_add_programmatic_fields_and_update_enums.sql +31 -0
  170. package/PCM/src/migrations/006_add_line_item_programmatic_fields.sql +12 -0
  171. package/PCM/src/migrations/007_add_line_item_direct_fields.sql +15 -0
  172. package/PCM/src/migrations/008_add_inventory_fields.sql +45 -0
  173. package/PCM/src/migrations/009_move_inventory_fields_to_metadata.sql +32 -0
  174. package/PCM/src/migrations/010_add_draft_status_and_line_items_count.sql +23 -0
  175. package/PCM/src/migrations/011_add_planning_field.sql +21 -0
  176. package/PCM/src/migrations/012_fix_inventory_composite_pk.sql +17 -0
  177. package/PCM/src/migrations/013_make_external_id_optional.sql +3 -0
  178. package/PCM/src/migrations/014_create_change_history.sql +38 -0
  179. package/PCM/src/migrations/016_create_publisher_insertion_orders.sql +33 -0
  180. package/PCM/src/migrations/017_fix_line_item_id_fk_reference.sql +86 -0
  181. package/PCM/src/migrations/018_create_approval_tables.sql +44 -0
  182. package/PCM/src/migrations/019_add_encrypted_token_column.sql +2 -0
  183. package/PCM/src/migrations/020_add_rejection_reason_to_deals.sql +10 -0
  184. package/PCM/src/migrations/021_add_publisher_external_id_to_inventories.sql +12 -0
  185. package/PCM/src/migrations/022_add_line_item_extended_fields.sql +24 -0
  186. package/PCM/src/migrations/023_add_base_price_fields.sql +8 -0
  187. package/PCM/src/migrations/run-migrations.js +46 -0
  188. package/PCM/src/models/ApprovalOTP.js +51 -0
  189. package/PCM/src/models/ApprovalToken.js +79 -0
  190. package/PCM/src/models/ChangeHistory.js +107 -0
  191. package/PCM/src/models/Deal.js +186 -0
  192. package/PCM/src/models/DealIdCounter.js +28 -0
  193. package/PCM/src/models/LineItem.js +227 -0
  194. package/PCM/src/models/LineItemCreative.js +89 -0
  195. package/PCM/src/models/LineItemInventory.js +115 -0
  196. package/PCM/src/models/PublisherInsertionOrder.js +93 -0
  197. package/PCM/src/models/TransactionHistory.js +34 -0
  198. package/PCM/src/models/associations.js +81 -0
  199. package/PCM/src/routes/approval.js +321 -0
  200. package/PCM/src/routes/creatives.js +437 -0
  201. package/PCM/src/routes/deals.js +1638 -0
  202. package/PCM/src/routes/digitalSignage.js +242 -0
  203. package/PCM/src/routes/insertionOrders.js +380 -0
  204. package/PCM/src/routes/lineItems.js +926 -0
  205. package/PCM/src/routes/system.js +384 -0
  206. package/PCM/src/services/ApprovalService.js +885 -0
  207. package/PCM/src/services/CampaignImportConverter.js +631 -0
  208. package/PCM/src/services/CampaignModeService.js +273 -0
  209. package/PCM/src/services/CampaignStatusService.js +395 -0
  210. package/PCM/src/services/ChangeHistoryService.js +316 -0
  211. package/PCM/src/services/DealIdService.js +94 -0
  212. package/PCM/src/services/DealResponseFormatter.js +90 -0
  213. package/PCM/src/services/EmailNotificationService.js +315 -0
  214. package/PCM/src/services/LineItemResponseFormatter.js +122 -0
  215. package/PCM/src/services/LineItemStatusService.js +380 -0
  216. package/PCM/src/tests/comprehensiveTestRunner.js +360 -0
  217. package/PCM/src/tests/comprehensiveTests.js +1277 -0
  218. package/PCM/src/tests/dealTypeUnitTests.js +1058 -0
  219. package/PCM/src/tests/testRunner.js +248 -0
  220. package/PCM/src/utils/caseConverter.js +92 -0
  221. package/PCM/src/utils/dealCalculations.js +206 -0
  222. package/PCM/src/utils/lineItemPayloadNormalizer.js +41 -0
  223. package/PCM/src/utils/payloadNormalizer.js +34 -0
  224. package/PCM/src/utils/sourceNormalizer.js +56 -0
  225. package/PCM/src/validators/creativeValidator.js +27 -0
  226. package/PCM/src/validators/dealValidator.js +203 -0
  227. package/PCM/src/validators/lineItemValidator.js +489 -0
  228. package/PCM/tests/approval-flows.test.js +238 -0
  229. package/PCM/tests/approval-workflow.test.js +291 -0
  230. package/PCM/tests/campaign-import-converter.test.js +543 -0
  231. package/PCM/tests/campaign-import-e2e.test.js +520 -0
  232. package/PCM/tests/campaign-status.test.js +539 -0
  233. package/PCM/tests/direct-publisher-split-reimport.test.js +460 -0
  234. package/PCM/tests/e2e/digital-signage.test.js +145 -0
  235. package/PCM/tests/e2e/search-filter-pagination.test.js +399 -0
  236. package/PCM/tests/e2e-comprehensive.test.js +3446 -0
  237. package/PCM/tests/edge-cases.test.js +340 -0
  238. package/PCM/tests/line-item-status.test.js +340 -0
  239. package/PCM/tests/seller-account-external-ids.test.js +877 -0
  240. package/PCM/tests/source-validation.test.js +324 -0
  241. package/PRD.md +3373 -0
  242. package/README.md +186 -0
  243. package/client/index.html +35 -0
  244. package/client/public/DEMO_STATUS.md +579 -0
  245. package/client/public/img/MW-logo-trans_1754045676555.png +0 -0
  246. package/client/public/locales/ar/approval.json +144 -0
  247. package/client/public/locales/ar/buyer.json +61 -0
  248. package/client/public/locales/ar/campaigns.json +1 -0
  249. package/client/public/locales/ar/common.json +218 -0
  250. package/client/public/locales/ar/contentHub.json +266 -0
  251. package/client/public/locales/ar/creatives.json +79 -0
  252. package/client/public/locales/ar/dashboard.json +57 -0
  253. package/client/public/locales/ar/deals.json +886 -0
  254. package/client/public/locales/ar/dsp.json +131 -0
  255. package/client/public/locales/ar/inventory.json +201 -0
  256. package/client/public/locales/ar/lineItems.json +553 -0
  257. package/client/public/locales/ar/navigation.json +48 -0
  258. package/client/public/locales/ar/wizard.json +1 -0
  259. package/client/public/locales/en/approval.json +144 -0
  260. package/client/public/locales/en/buyer.json +65 -0
  261. package/client/public/locales/en/campaigns.json +1 -0
  262. package/client/public/locales/en/common.json +218 -0
  263. package/client/public/locales/en/contentHub.json +266 -0
  264. package/client/public/locales/en/creatives.json +79 -0
  265. package/client/public/locales/en/dashboard.json +57 -0
  266. package/client/public/locales/en/deals.json +886 -0
  267. package/client/public/locales/en/dsp.json +131 -0
  268. package/client/public/locales/en/inventory.json +201 -0
  269. package/client/public/locales/en/lineItems.json +659 -0
  270. package/client/public/locales/en/navigation.json +48 -0
  271. package/client/public/locales/en/wizard.json +1 -0
  272. package/client/public/locales/ja/approval.json +144 -0
  273. package/client/public/locales/ja/buyer.json +61 -0
  274. package/client/public/locales/ja/campaigns.json +1 -0
  275. package/client/public/locales/ja/common.json +218 -0
  276. package/client/public/locales/ja/contentHub.json +266 -0
  277. package/client/public/locales/ja/creatives.json +79 -0
  278. package/client/public/locales/ja/dashboard.json +57 -0
  279. package/client/public/locales/ja/deals.json +886 -0
  280. package/client/public/locales/ja/dsp.json +131 -0
  281. package/client/public/locales/ja/inventory.json +201 -0
  282. package/client/public/locales/ja/lineItems.json +553 -0
  283. package/client/public/locales/ja/navigation.json +48 -0
  284. package/client/public/locales/ja/wizard.json +1 -0
  285. package/client/public/locales/zh/approval.json +144 -0
  286. package/client/public/locales/zh/buyer.json +61 -0
  287. package/client/public/locales/zh/campaigns.json +1 -0
  288. package/client/public/locales/zh/common.json +218 -0
  289. package/client/public/locales/zh/contentHub.json +266 -0
  290. package/client/public/locales/zh/creatives.json +79 -0
  291. package/client/public/locales/zh/dashboard.json +57 -0
  292. package/client/public/locales/zh/deals.json +886 -0
  293. package/client/public/locales/zh/dsp.json +131 -0
  294. package/client/public/locales/zh/inventory.json +201 -0
  295. package/client/public/locales/zh/lineItems.json +553 -0
  296. package/client/public/locales/zh/navigation.json +48 -0
  297. package/client/public/locales/zh/wizard.json +1 -0
  298. package/client/public/manifest.json +36 -0
  299. package/client/src/App.tsx +464 -0
  300. package/client/src/components/app-sidebar.tsx +312 -0
  301. package/client/src/components/approval/approval-decision-form.test.tsx +294 -0
  302. package/client/src/components/approval/approval-decision-form.tsx +326 -0
  303. package/client/src/components/approval/approval-sheet.tsx +631 -0
  304. package/client/src/components/approval/line-item-details-sheet.tsx +371 -0
  305. package/client/src/components/approval/otp-verification.test.tsx +337 -0
  306. package/client/src/components/approval/otp-verification.tsx +180 -0
  307. package/client/src/components/content-hub/bulk-transcode-dialog.tsx +379 -0
  308. package/client/src/components/content-hub/content-hub-manager-v2.tsx +574 -0
  309. package/client/src/components/content-hub/content-hub-manager.tsx +330 -0
  310. package/client/src/components/content-hub/creative-card.tsx +456 -0
  311. package/client/src/components/content-hub/creative-detail-sheet.tsx +685 -0
  312. package/client/src/components/content-hub/creative-filters.tsx +457 -0
  313. package/client/src/components/content-hub/creative-grid.tsx +329 -0
  314. package/client/src/components/content-hub/creative-selector.tsx +415 -0
  315. package/client/src/components/content-hub/creative-upload.tsx +547 -0
  316. package/client/src/components/content-hub/folder-dialogs.tsx +445 -0
  317. package/client/src/components/content-hub/folder-list.tsx +280 -0
  318. package/client/src/components/content-hub/review-dialogs.tsx +268 -0
  319. package/client/src/components/content-hub/transcode-dialog.tsx +226 -0
  320. package/client/src/components/creative-library/creative-details-view.tsx +446 -0
  321. package/client/src/components/creative-library/creative-filters-panel.tsx +203 -0
  322. package/client/src/components/creative-library/creative-list.tsx +360 -0
  323. package/client/src/components/creative-library/creative-status-badge.tsx +71 -0
  324. package/client/src/components/creative-library/folder-card.tsx +78 -0
  325. package/client/src/components/creative-library/index.ts +27 -0
  326. package/client/src/components/creative-library/new-creative-card.tsx +211 -0
  327. package/client/src/components/creative-library/upload-creative-dialog.tsx +261 -0
  328. package/client/src/components/dashboard-overview.tsx +109 -0
  329. package/client/src/components/deals/approval-history-panel.test.tsx +240 -0
  330. package/client/src/components/deals/approval-history-panel.tsx +156 -0
  331. package/client/src/components/deals/deal-status-badge.tsx +92 -0
  332. package/client/src/components/deals/import-from-planner-dialog.tsx +399 -0
  333. package/client/src/components/deals/market-insights-panel.tsx +237 -0
  334. package/client/src/components/deals/reopen-deal-sheet.tsx +191 -0
  335. package/client/src/components/deals/request-approval-sheet.test.tsx +323 -0
  336. package/client/src/components/deals/request-approval-sheet.tsx +136 -0
  337. package/client/src/components/deals/resend-approval-sheet.tsx +201 -0
  338. package/client/src/components/direct-campaigns/campaign-card.tsx +283 -0
  339. package/client/src/components/direct-campaigns/deal-filter-panel.tsx +325 -0
  340. package/client/src/components/inventory/advanced-filters-panel.tsx +273 -0
  341. package/client/src/components/inventory/csv-upload-modal.tsx +639 -0
  342. package/client/src/components/inventory/inventory-availability-view.tsx +486 -0
  343. package/client/src/components/inventory/inventory-details-sheet.tsx +376 -0
  344. package/client/src/components/inventory/inventory-map-view.tsx +596 -0
  345. package/client/src/components/inventory/inventory-settings-menu.tsx +52 -0
  346. package/client/src/components/language-switcher.tsx +53 -0
  347. package/client/src/components/line-items/campaign-forecast-panel.tsx +138 -0
  348. package/client/src/components/line-items/form-insights.tsx +89 -0
  349. package/client/src/components/line-items/geofencing/LocationCsvUploadDrawer.tsx +100 -0
  350. package/client/src/components/line-items/geofencing/POIDropdown.tsx +379 -0
  351. package/client/src/components/line-items/geofencing/SelectedLocationsSidebar.tsx +436 -0
  352. package/client/src/components/line-items/geofencing/ViewFileLocationDrawer.tsx +199 -0
  353. package/client/src/components/line-items/geofencing/components/ExistingFilesTab.tsx +268 -0
  354. package/client/src/components/line-items/geofencing/components/TemplateDownloadSection.tsx +59 -0
  355. package/client/src/components/line-items/geofencing/components/UploadTab.tsx +215 -0
  356. package/client/src/components/line-items/geofencing-map.tsx +1270 -0
  357. package/client/src/components/line-items/inventory-availability-section.tsx +178 -0
  358. package/client/src/components/line-items/line-item-schedule-manager.tsx +313 -0
  359. package/client/src/components/line-items/manual-inventory-drawer.tsx +346 -0
  360. package/client/src/components/line-items/planner-inventory-card.tsx +495 -0
  361. package/client/src/components/line-items/planner-schedule-grid.tsx +495 -0
  362. package/client/src/components/line-items/schedule-rule-editor.tsx +649 -0
  363. package/client/src/components/line-items/schedule-rule-types.ts +122 -0
  364. package/client/src/components/line-items/steps/creatives-step.tsx +681 -0
  365. package/client/src/components/line-items/steps/inventory-schedule-step.tsx +1596 -0
  366. package/client/src/components/line-items/steps/inventory-step.tsx +1533 -0
  367. package/client/src/components/line-items/steps/line-item-details-step.tsx +916 -0
  368. package/client/src/components/line-items/steps/schedule-step.tsx +273 -0
  369. package/client/src/components/line-items/steps/summary-step.tsx +680 -0
  370. package/client/src/components/line-items/steps/targeting-step.tsx +1708 -0
  371. package/client/src/components/product-switcher.tsx +105 -0
  372. package/client/src/components/protected-route.tsx +49 -0
  373. package/client/src/components/skip-link.tsx +22 -0
  374. package/client/src/components/stat-card.tsx +53 -0
  375. package/client/src/components/status-badge.tsx +96 -0
  376. package/client/src/components/ui/hierarchical-venue-selector.tsx +389 -0
  377. package/client/src/components/ui/toaster.tsx +111 -0
  378. package/client/src/contexts/auth-context.tsx +181 -0
  379. package/client/src/contexts/sidebar-state.tsx +50 -0
  380. package/client/src/contexts/theme-context.tsx +66 -0
  381. package/client/src/data/campaign-data.json +107 -0
  382. package/client/src/data/countries.json +22 -0
  383. package/client/src/hooks/use-approval.ts +366 -0
  384. package/client/src/hooks/use-keyboard-shortcuts.ts +74 -0
  385. package/client/src/hooks/use-media-query.ts +46 -0
  386. package/client/src/hooks/use-mobile.tsx +19 -0
  387. package/client/src/hooks/use-page-title.ts +21 -0
  388. package/client/src/hooks/use-toast.ts +195 -0
  389. package/client/src/index.css +694 -0
  390. package/client/src/lib/__tests__/accessibility.test.ts +104 -0
  391. package/client/src/lib/__tests__/date-utils.test.ts +199 -0
  392. package/client/src/lib/__tests__/dsp-buyer-api.test.ts +127 -0
  393. package/client/src/lib/__tests__/dsp-buyer-integration.test.ts +247 -0
  394. package/client/src/lib/__tests__/storage-utils.test.ts +167 -0
  395. package/client/src/lib/__tests__/utils.test.ts +57 -0
  396. package/client/src/lib/accessibility.ts +141 -0
  397. package/client/src/lib/api-config.ts +9 -0
  398. package/client/src/lib/auth-service.ts +209 -0
  399. package/client/src/lib/campaign-creative-api.ts +82 -0
  400. package/client/src/lib/company-api.ts +61 -0
  401. package/client/src/lib/content-hub-api.ts +407 -0
  402. package/client/src/lib/creative-mapper.ts +61 -0
  403. package/client/src/lib/date-utils.ts +119 -0
  404. package/client/src/lib/deal-helpers.ts +220 -0
  405. package/client/src/lib/dsp-buyer-api.ts +196 -0
  406. package/client/src/lib/geo-import-api.ts +151 -0
  407. package/client/src/lib/google-poi-api.ts +305 -0
  408. package/client/src/lib/i18n/__tests__/formatting.test.ts +202 -0
  409. package/client/src/lib/i18n/formatting.ts +130 -0
  410. package/client/src/lib/i18n/index.ts +8 -0
  411. package/client/src/lib/i18n-compat.ts +76 -0
  412. package/client/src/lib/influence-deals-api.ts +896 -0
  413. package/client/src/lib/inventory-api.ts +399 -0
  414. package/client/src/lib/oauth-service.ts +678 -0
  415. package/client/src/lib/poi-types.ts +75 -0
  416. package/client/src/lib/queryClient.ts +144 -0
  417. package/client/src/lib/recommendation-api.ts +380 -0
  418. package/client/src/lib/storage-utils.ts +104 -0
  419. package/client/src/lib/tolgee.ts +85 -0
  420. package/client/src/lib/utils.ts +0 -0
  421. package/client/src/main.tsx +67 -0
  422. package/client/src/mapbox-draw-modes.d.ts +32 -0
  423. package/client/src/pages/all-folders.tsx +203 -0
  424. package/client/src/pages/auth-callback.tsx +115 -0
  425. package/client/src/pages/buyer-form.tsx +339 -0
  426. package/client/src/pages/buyer-list.tsx +622 -0
  427. package/client/src/pages/content-hub.tsx +1358 -0
  428. package/client/src/pages/create-deal.tsx +2093 -0
  429. package/client/src/pages/creative-assignment-page.tsx +548 -0
  430. package/client/src/pages/creatives.tsx +5 -0
  431. package/client/src/pages/custom-pois.tsx +425 -0
  432. package/client/src/pages/dashboard.tsx +615 -0
  433. package/client/src/pages/deal-history.tsx +434 -0
  434. package/client/src/pages/deal-line-items.tsx +1703 -0
  435. package/client/src/pages/demo-status.tsx +113 -0
  436. package/client/src/pages/direct-campaign-details.tsx +361 -0
  437. package/client/src/pages/direct-campaigns-new.tsx +824 -0
  438. package/client/src/pages/dsp-form.tsx +803 -0
  439. package/client/src/pages/dsp-list.tsx +239 -0
  440. package/client/src/pages/folder-content.tsx +336 -0
  441. package/client/src/pages/integrations.tsx +429 -0
  442. package/client/src/pages/line-item-creatives.tsx +789 -0
  443. package/client/src/pages/line-item-detail-page.tsx +684 -0
  444. package/client/src/pages/line-item-form-page.tsx +3261 -0
  445. package/client/src/pages/line-item-wizard.tsx +1207 -0
  446. package/client/src/pages/login.tsx +154 -0
  447. package/client/src/pages/not-found.tsx +23 -0
  448. package/client/src/pages/proof-of-play.tsx +397 -0
  449. package/client/src/pages/public-approval.tsx +551 -0
  450. package/client/src/pages/reports.tsx +231 -0
  451. package/client/src/pages/settings.tsx +760 -0
  452. package/client/src/pages/signals.tsx +389 -0
  453. package/client/src/pages/tags.tsx +318 -0
  454. package/client/src/pages/test-results.tsx +328 -0
  455. package/client/src/store/hooks.ts +5 -0
  456. package/client/src/store/index.ts +15 -0
  457. package/client/src/store/mapMarkerLocationsSlice.ts +241 -0
  458. package/client/src/styles/design-tokens.css +324 -0
  459. package/client/src/test/setup.ts +261 -0
  460. package/client/src/test/test-utils.tsx +40 -0
  461. package/client/src/types/approval.ts +221 -0
  462. package/client/src/types/content-hub.ts +209 -0
  463. package/client/src/types/geofencing.ts +67 -0
  464. package/client/src/types/transcoding.ts +140 -0
  465. package/client/src/vite-env.d.ts +18 -0
  466. package/components.json +20 -0
  467. package/creative-api.json +1 -0
  468. package/docs/AI_REFERENCE.md +459 -0
  469. package/docs/MWDesign-Prompt.md +132 -0
  470. package/docs/MWDesign-System.md +344 -0
  471. package/docs/test-plan.md +277 -0
  472. package/e2e/AUTONOMOUS-TESTING.md +406 -0
  473. package/e2e/README.md +219 -0
  474. package/e2e/autonomous-flow.spec.ts +308 -0
  475. package/e2e/debug-sso.spec.ts +163 -0
  476. package/e2e/direct-campaigns.spec.ts +219 -0
  477. package/e2e/explore-sso.spec.ts +149 -0
  478. package/e2e/fixtures/auth.ts +26 -0
  479. package/e2e/fixtures/enhanced-test.ts +331 -0
  480. package/e2e/pagination.spec.ts +280 -0
  481. package/e2e/view-toggle.spec.ts +312 -0
  482. package/generated-icon.png +0 -0
  483. package/i18next-scanner.config.cjs +46 -0
  484. package/package.json +141 -0
  485. package/playwright.config.ts +93 -0
  486. package/postcss.config.js +6 -0
  487. package/replit.md +196 -0
  488. package/screenshot-after-login.png +0 -0
  489. package/screenshot-contenthub-grid.png +0 -0
  490. package/screenshot-contenthub-list-fixed.png +0 -0
  491. package/screenshot-contenthub-list.png +0 -0
  492. package/screenshot-create-deal.png +0 -0
  493. package/screenshot-dashboard.png +0 -0
  494. package/screenshot-deals.png +0 -0
  495. package/screenshot-login-filled.png +0 -0
  496. package/screenshot-login.png +0 -0
  497. package/screenshot.mjs +24 -0
  498. package/scripts/deploy-stg.sh +185 -0
  499. package/shared/direct-io-schema.ts +383 -0
  500. package/shared/schema.ts +439 -0
  501. package/shared/screen-types.ts +149 -0
  502. package/springdocDefault.json +1 -0
  503. package/swagger-ui-bundle.js +2 -0
  504. package/swagger-ui-init.js +10316 -0
  505. package/tailwind.config.ts +282 -0
  506. package/terraform/README.md +306 -0
  507. package/terraform/cloudfront.tf +289 -0
  508. package/terraform/ecs.tf +727 -0
  509. package/terraform/environments/dev.tfvars +59 -0
  510. package/terraform/environments/production.tfvars +60 -0
  511. package/terraform/main.tf +47 -0
  512. package/terraform/outputs.tf +145 -0
  513. package/terraform/s3.tf +192 -0
  514. package/terraform/variables.tf +226 -0
  515. package/terraform/waf.tf +165 -0
  516. package/terraform-frontend/.terraform.lock.hcl +25 -0
  517. package/terraform-frontend/README.md +85 -0
  518. package/terraform-frontend/cloudfront.tf +125 -0
  519. package/terraform-frontend/main.tf +31 -0
  520. package/terraform-frontend/outputs.tf +24 -0
  521. package/terraform-frontend/terraform.tfvars +12 -0
  522. package/terraform-frontend/variables.tf +53 -0
  523. package/tsconfig.json +23 -0
  524. package/vite.config.ts +226 -0
  525. package/vitest.config.ts +56 -0
@@ -0,0 +1,498 @@
1
+ Level,Hierarchy ID,Feature Name,Description,Location/Route,Default Functions,Can Be Disabled,Default Value If Disabled,Screenshot Reference
2
+ 0,1,Sidebar Navigation,Main navigation sidebar,All Pages,All,No,N/A,
3
+ 1,1.1,Dashboard Link,Navigate to Dashboard,Sidebar,All,No,N/A,
4
+ 1,1.2,Deals Link,Navigate to Deals list,Sidebar,All,No,N/A,
5
+ 1,1.3,Content Hub Link,Navigate to Content Hub,Sidebar,"MO:Content Manager|MO:Ad Operations|AG:Creative Manager|AG:Creative Director|MW:Super Admin",Yes,Hidden from sidebar,
6
+ 1,1.4,Inventory Link,External link to Inventory system,Sidebar,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden from sidebar,
7
+ 1,1.5,Signals Link,Navigate to Signals/Triggers,Sidebar,"MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden from sidebar,
8
+ 1,1.6,Proof of Play Link,Navigate to Proof of Play,Sidebar,"MO:Operations Manager|MO:Ad Operations|MO:Finance Manager|MW:Super Admin|MW:Finance",Yes,Hidden from sidebar,
9
+ 1,1.7,Integrations Link,Navigate to Integrations,Sidebar,"MW:Super Admin|MO:Operations Manager|MW:Technical Operations",Yes,Hidden from sidebar,
10
+ 1,1.8,Reports Link,Navigate to Reports,Sidebar,All,No,N/A,
11
+ 0,2,Dashboard,Main dashboard with metrics and widgets,/,All,No,N/A,
12
+ 1,2.1,Dashboard Header,Header with welcome message and date filter,/,All,No,N/A,
13
+ 2,2.1.1,Welcome Message,Personalized greeting,/,All,No,N/A,
14
+ 2,2.1.2,Date Range Filter,Filter dashboard by date range,/,All,Yes,Last 30 days,
15
+ 1,2.2,Metrics Cards,Key performance metrics,/,All,No,N/A,
16
+ 2,2.2.1,Total Deals Card,Count of all deals,/,All,No,N/A,
17
+ 2,2.2.2,Active Line Items Card,Count of active line items,/,All,No,N/A,
18
+ 2,2.2.3,Total Impressions Card,Sum of all impressions,/,All,No,N/A,
19
+ 2,2.2.4,Total Revenue Card,Sum of all revenue,/,"MO:Finance Manager|MO:Billing Admin|AG:Account Director|MW:Super Admin|MW:Finance",Yes,Hidden,
20
+ 2,2.2.5,Fill Rate Card,Overall fill rate percentage,/,"MO:Ad Operations|MO:Operations Manager|MW:Super Admin",Yes,Hidden,
21
+ 2,2.2.6,Average CPM Card,Average cost per mille,/,"MO:Finance Manager|AG:Media Buyer|MW:Super Admin|MW:Finance",Yes,Hidden,
22
+ 1,2.3,Impression Progress Widget,Visual progress of impressions vs goals,/,All,Yes,Hidden,
23
+ 1,2.4,Screen Status Widget,Overview of screen online/offline status,/,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden,
24
+ 1,2.5,Recent Deals Widget,List of recently modified deals,/,All,No,N/A,
25
+ 1,2.6,Top Line Items Widget,Best performing line items,/,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",Yes,Hidden,
26
+ 1,2.7,Creative Status Widget,Overview of creative approval states,/,"MO:Content Manager|MO:Creative Approver|AG:Creative Director|MW:Super Admin",Yes,Hidden,
27
+ 0,3,Deals,Deal management module,/deals,All,No,N/A,
28
+ 1,3.1,Deals List Page,List of all deals with filters,/deals,All,No,N/A,
29
+ 2,3.1.1,Page Header,Title and create button,/deals,All,No,N/A,
30
+ 3,3.1.1.1,Page Title,Deals heading,/deals,All,No,N/A,
31
+ 3,3.1.1.2,Create Deal Button,Navigate to create deal form,/deals,"MO:Sales Rep|MO:Campaign Planner|MO:Ad Operations|AG:Media Planner|AG:Media Buyer|MW:Super Admin|MW:Sales",Yes,Hidden,
32
+ 2,3.1.2,Search & Filter Bar,Search and filter deals,/deals,All,No,N/A,
33
+ 3,3.1.2.1,Search Input,Text search for deals,/deals,All,No,N/A,
34
+ 3,3.1.2.2,Filter Button,Open filter drawer,/deals,All,No,N/A,
35
+ 2,3.1.3,Deals Table,Data table of deals,/deals,All,No,N/A,
36
+ 3,3.1.3.1,Deal Name Column,Deal name with link,/deals,All,No,N/A,
37
+ 3,3.1.3.2,Status Column,Deal status badge,/deals,All,No,N/A,
38
+ 3,3.1.3.3,Deal Type Column,Type of deal,/deals,All,No,N/A,
39
+ 3,3.1.3.4,Advertiser Column,Advertiser name,/deals,All,No,N/A,
40
+ 3,3.1.3.5,Budget Column,Deal budget,/deals,"MO:Finance Manager|MO:Billing Admin|AG:Account Director|AG:Media Buyer|MW:Super Admin|MW:Finance",Yes,Hidden,
41
+ 3,3.1.3.6,Spent Column,Amount spent,/deals,"MO:Finance Manager|AG:Account Director|MW:Super Admin|MW:Finance",Yes,Hidden,
42
+ 3,3.1.3.7,Dates Column,Start and end dates,/deals,All,No,N/A,
43
+ 3,3.1.3.8,Line Items Count Column,Number of line items,/deals,All,No,N/A,
44
+ 3,3.1.3.9,Actions Column,Row action menu,/deals,All,No,N/A,
45
+ 2,3.1.4,Row Actions Menu,Actions for each deal,/deals,All,No,N/A,
46
+ 3,3.1.4.1,View Details Action,Open deal detail,/deals,All,No,N/A,
47
+ 3,3.1.4.2,Edit Deal Action,Open deal edit form,/deals,"MO:Sales Rep|MO:Campaign Planner|MO:Ad Operations|AG:Media Planner|AG:Account Manager|MW:Super Admin",Yes,Hidden,
48
+ 3,3.1.4.3,Duplicate Deal Action,Create copy of deal,/deals,"MO:Sales Rep|MO:Campaign Planner|MO:Ad Operations|AG:Media Planner|MW:Super Admin",Yes,Hidden,
49
+ 3,3.1.4.4,Delete Deal Action,Delete the deal,/deals,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Hidden,
50
+ 2,3.1.5,Filter Drawer,Right-side filter panel,/deals,All,No,N/A,
51
+ 3,3.1.5.1,Status Filter,Filter by deal status,/deals,All,No,N/A,
52
+ 3,3.1.5.2,Deal Type Filter,Filter by deal type,/deals,All,No,N/A,
53
+ 3,3.1.5.3,Advertiser Filter,Filter by advertiser,/deals,All,No,N/A,
54
+ 3,3.1.5.4,Date Range Filter,Filter by date range,/deals,All,No,N/A,
55
+ 3,3.1.5.5,Budget Range Filter,Filter by budget range,/deals,"MO:Finance Manager|AG:Account Director|MW:Super Admin|MW:Finance",Yes,Hidden,
56
+ 1,3.2,Deal Detail Page,View deal information,/deals/:id,All,No,N/A,
57
+ 2,3.2.1,Deal Header,Deal name and status,/deals/:id,All,No,N/A,
58
+ 3,3.2.1.1,Deal Name,Deal title,/deals/:id,All,No,N/A,
59
+ 3,3.2.1.2,Status Badge,Deal status,/deals/:id,All,No,N/A,
60
+ 3,3.2.1.3,Edit Button,Navigate to edit form,/deals/:id,"MO:Sales Rep|MO:Campaign Planner|MO:Ad Operations|AG:Media Planner|MW:Super Admin",Yes,Hidden,
61
+ 3,3.2.1.4,Request Acceptance Button,Send deal for acceptance,/deals/:id,"MO:Administrator|AG:Account Director|MW:Super Admin",Yes,Hidden,
62
+ 3,3.2.1.5,Reopen Deal Button,Reopen locked deal,/deals/:id,"MO:Administrator|AG:Account Director|MW:Super Admin",Yes,Hidden,
63
+ 2,3.2.2,Deal Information Cards,Deal details organized in cards,/deals/:id,All,No,N/A,
64
+ 2,3.2.3,Line Items Section,List of line items for the deal,/deals/:id,All,No,N/A,
65
+ 3,3.2.3.1,Create Line Item Button,Add new line item,/deals/:id,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",Yes,Hidden,
66
+ 3,3.2.3.2,Line Items Table,Table of line items,/deals/:id,All,No,N/A,
67
+ 1,3.3,Create/Edit Deal Form,Form for creating/editing deals,/deals/new or /deals/:id/edit,"MO:Sales Rep|MO:Campaign Planner|MO:Ad Operations|AG:Media Planner|AG:Media Buyer|MW:Super Admin",No,N/A,
68
+ 2,3.3.1,Basic Information Section,Core deal fields,/deals/new,All,No,N/A,
69
+ 3,3.3.1.1,Deal Name Input,Enter deal name,/deals/new,All,No - Required,N/A,
70
+ 3,3.3.1.2,Status Select,Select deal status,/deals/new,All,Yes,draft,
71
+ 3,3.3.1.3,External Deal ID Input,External reference ID,/deals/new,All,Yes,Empty,
72
+ 3,3.3.1.4,Advertiser Select,Select advertiser,/deals/new,All,No - Required,N/A,
73
+ 3,3.3.1.5,Agency Select,Select agency,/deals/new,All,Yes,None,
74
+ 2,3.3.2,Deal Type Section,Type and programmatic settings,/deals/new,All,No,N/A,
75
+ 3,3.3.2.1,Deal Type Select,Traditional or Programmatic,/deals/new,All,Yes,Traditional,
76
+ 3,3.3.2.2,Programmatic Type Select,PG/PMP/Preferred Deal/Always On/Open Auction,/deals/new,All,Yes,PG (if programmatic),
77
+ 3,3.3.2.3,SSP Partner Select,Select SSP for programmatic,/deals/new,"MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Influence SSP,
78
+ 3,3.3.2.4,DSP Partner Select,Select DSP partner,/deals/new,"MO:Ad Operations|AG:Media Buyer|MW:Super Admin",Yes,Empty,
79
+ 3,3.3.2.5,Seat Name Input,DSP seat name,/deals/new,"MO:Ad Operations|AG:Media Buyer|MW:Super Admin",Yes,Empty,
80
+ 3,3.3.2.6,Seat ID Input,DSP seat identifier,/deals/new,"MO:Ad Operations|AG:Media Buyer|MW:Super Admin",Yes,Empty,
81
+ 2,3.3.3,Financial Section,Budget and pricing,/deals/new,All,No,N/A,
82
+ 3,3.3.3.1,Budget Type Select,Impressions or Spend,/deals/new,All,Yes,Impressions,
83
+ 3,3.3.3.2,Budget Amount Input,Target budget value,/deals/new,All,Yes,0,
84
+ 3,3.3.3.3,Currency Select,Currency for budget,/deals/new,"MO:Finance Manager|AG:Account Director|MW:Super Admin|MW:Finance",Yes,USD,
85
+ 3,3.3.3.4,CPM Input,Cost per mille,/deals/new,"MO:Finance Manager|AG:Media Buyer|MW:Super Admin|MW:Finance",Yes,0,
86
+ 3,3.3.3.5,Floor Price Input,Minimum bid price,/deals/new,"MO:Finance Manager|MO:Ad Operations|MW:Super Admin|MW:Finance",Yes,0,
87
+ 2,3.3.4,Schedule Section,Date and time settings,/deals/new,All,No,N/A,
88
+ 3,3.3.4.1,Start Date Picker,Campaign start date,/deals/new,All,No - Required,N/A,
89
+ 3,3.3.4.2,End Date Picker,Campaign end date,/deals/new,All,No - Required,N/A,
90
+ 3,3.3.4.3,Timezone Select,Timezone for scheduling,/deals/new,All,Yes,Account default,
91
+ 2,3.3.5,Form Actions,Save and cancel buttons,/deals/new,All,No,N/A,
92
+ 3,3.3.5.1,Cancel Button,Discard and return,/deals/new,All,No - Required,N/A,
93
+ 3,3.3.5.2,Save as Draft Button,Save without activating,/deals/new,All,No - Required,N/A,
94
+ 3,3.3.5.3,Save Button,Save deal,/deals/new,All,No - Required,N/A,
95
+ 0,4,Line Items,Line item management,/line-items,All,No,N/A,
96
+ 1,4.1,Line Item Detail Page,View line item information,/line-items/:id,All,No,N/A,
97
+ 2,4.1.1,Line Item Header,Name and status,/line-items/:id,All,No,N/A,
98
+ 3,4.1.1.1,Line Item Name,Line item title,/line-items/:id,All,No,N/A,
99
+ 3,4.1.1.2,Status Badge,Line item status,/line-items/:id,All,No,N/A,
100
+ 3,4.1.1.3,Edit Button,Navigate to edit form,/line-items/:id,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",Yes,Hidden,
101
+ 2,4.1.2,Line Item Information,Details organized in sections,/line-items/:id,All,No,N/A,
102
+ 2,4.1.3,Creatives Section,Assigned creatives,/line-items/:id,All,No,N/A,
103
+ 1,4.2,Create/Edit Line Item Form,Form for line items,/line-items/new or /line-items/:id/edit,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",No,N/A,
104
+ 2,4.2.1,Basic Information Section,Core line item fields,/line-items/new,All,No,N/A,
105
+ 3,4.2.1.1,Line Item Name Input,Enter line item name,/line-items/new,All,No - Required,N/A,
106
+ 3,4.2.1.2,Status Select,Select status,/line-items/new,All,Yes,draft,
107
+ 3,4.2.1.3,Deal Select,Associate with deal,/line-items/new,All,No - Required,N/A,
108
+ 2,4.2.2,Traffic Control Section,Priority and allocation,/line-items/new,All,No,N/A,
109
+ 3,4.2.2.1,Priority Input,Priority level 1-10,/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,5,
110
+ 3,4.2.2.2,Traffic Allocation Input,Allocation percentage 0-100,/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,100,
111
+ 2,4.2.3,Frequency Cap Section,Frequency limiting (PMP/Always On/Open Auction only),/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,Hidden for PG/Traditional,
112
+ 3,4.2.3.1,Frequency Cap Toggle,Enable frequency capping,/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,false,
113
+ 3,4.2.3.2,Max Plays Input,Maximum plays per inventory,/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,1,
114
+ 3,4.2.3.3,Time Period Select,Cap reset period,/line-items/new,"MO:Ad Operations|MW:Super Admin",Yes,hour,
115
+ 2,4.2.4,Budget Section,Line item budget,/line-items/new,All,No,N/A,
116
+ 3,4.2.4.1,Budget Type Select,Impressions or Spend,/line-items/new,All,Yes,Impressions,
117
+ 3,4.2.4.2,Budget Amount Input,Target value,/line-items/new,All,Yes,0,
118
+ 3,4.2.4.3,CPM Input,Cost per mille,/line-items/new,"MO:Finance Manager|AG:Media Buyer|MW:Super Admin|MW:Finance",Yes,0,
119
+ 2,4.2.5,Schedule Section,Date and time settings,/line-items/new,All,No,N/A,
120
+ 3,4.2.5.1,Start Date Picker,Line item start date,/line-items/new,All,No - Required,N/A,
121
+ 3,4.2.5.2,End Date Picker,Line item end date,/line-items/new,All,No - Required,N/A,
122
+ 3,4.2.5.3,Dayparting Toggle,Enable time-of-day targeting,/line-items/new,"MO:Ad Operations|AG:Media Planner|MW:Super Admin",Yes,false,
123
+ 2,4.2.6,Targeting Section,Audience and geo targeting,/line-items/new,All,No,N/A,
124
+ 3,4.2.6.1,Geotargeting Button,Open geotargeting interface,/line-items/new,All,Yes,No targeting,
125
+ 3,4.2.6.2,Inventory Select,Select screens/venues,/line-items/new,All,No - Required,N/A,
126
+ 3,4.2.6.3,Audience Segments Select,Target audience segments,/line-items/new,"MO:Ad Operations|AG:Media Planner|MW:Super Admin",Yes,All audiences,
127
+ 2,4.2.7,Form Actions,Save and cancel buttons,/line-items/new,All,No,N/A,
128
+ 3,4.2.7.1,Cancel Button,Discard and return,/line-items/new,All,No - Required,N/A,
129
+ 3,4.2.7.2,Save Button,Save line item,/line-items/new,All,No - Required,N/A,
130
+ 0,5,Content Hub,Creative asset management,/content-hub,"MO:Content Manager|MO:Ad Operations|AG:Creative Manager|AG:Creative Director|MW:Super Admin",No,N/A,
131
+ 1,5.1,Content Hub List Page,List of all creatives,/content-hub,All with access,No,N/A,
132
+ 2,5.1.1,Page Header,Title and upload button,/content-hub,All with access,No,N/A,
133
+ 3,5.1.1.1,Page Title,Content Hub heading,/content-hub,All with access,No,N/A,
134
+ 3,5.1.1.2,Upload Creative Button,Upload new creative,/content-hub,"MO:Content Manager|AG:Creative Manager|MW:Super Admin",Yes,Hidden,
135
+ 2,5.1.2,Creative Grid/List,Display of creatives,/content-hub,All with access,No,N/A,
136
+ 3,5.1.2.1,View Toggle,Switch grid/list view,/content-hub,All with access,No,N/A,
137
+ 3,5.1.2.2,Creative Cards,Individual creative items,/content-hub,All with access,No,N/A,
138
+ 2,5.1.3,Filter Panel,Filter creatives,/content-hub,All with access,No,N/A,
139
+ 3,5.1.3.1,Status Filter,Filter by approval status,/content-hub,All with access,No,N/A,
140
+ 3,5.1.3.2,Type Filter,Filter by media type,/content-hub,All with access,No,N/A,
141
+ 3,5.1.3.3,Advertiser Filter,Filter by advertiser,/content-hub,All with access,No,N/A,
142
+ 1,5.2,Creative Detail Page,View creative details,/content-hub/:id,All with access,No,N/A,
143
+ 2,5.2.1,Creative Preview,Media preview,/content-hub/:id,All with access,No,N/A,
144
+ 2,5.2.2,Creative Information,Metadata and specs,/content-hub/:id,All with access,No,N/A,
145
+ 3,5.2.2.1,File Name,Original filename,/content-hub/:id,All with access,No,N/A,
146
+ 3,5.2.2.2,Dimensions,Width x Height,/content-hub/:id,All with access,No,N/A,
147
+ 3,5.2.2.3,File Size,Size in bytes/KB/MB,/content-hub/:id,All with access,No,N/A,
148
+ 3,5.2.2.4,Duration,Video/audio duration,/content-hub/:id,All with access,No,N/A,
149
+ 3,5.2.2.5,Format,File format/codec,/content-hub/:id,All with access,No,N/A,
150
+ 2,5.2.3,Creative Source Section,Source tracking (Tier 1/Tier 2),/content-hub/:id,All with access,No,N/A,
151
+ 3,5.2.3.1,Source Type Badge,Tier 1 or Tier 2,/content-hub/:id,All with access,No,N/A,
152
+ 3,5.2.3.2,Uploader Info,Who uploaded the creative,/content-hub/:id,All with access,No,N/A,
153
+ 3,5.2.3.3,Upload Date,When uploaded,/content-hub/:id,All with access,No,N/A,
154
+ 2,5.2.4,Approval Section,Approval workflow,/content-hub/:id,All with access,No,N/A,
155
+ 3,5.2.4.1,Tier 1 Approval Status,Content Hub approval,/content-hub/:id,All with access,No,N/A,
156
+ 3,5.2.4.2,Tier 2 Approval Status,Media Owner approval,/content-hub/:id,All with access,No,N/A,
157
+ 3,5.2.4.3,Approve Button,Approve creative,/content-hub/:id,"MO:Creative Approver|MO:Content Manager|AG:Creative Director|MW:Super Admin",Yes,Hidden,
158
+ 3,5.2.4.4,Reject Button,Reject creative,/content-hub/:id,"MO:Creative Approver|MO:Content Manager|AG:Creative Director|MW:Super Admin",Yes,Hidden,
159
+ 3,5.2.4.5,Rejection Reason Input,Reason for rejection,/content-hub/:id,"MO:Creative Approver|MO:Content Manager|AG:Creative Director|MW:Super Admin",Yes,Hidden,
160
+ 2,5.2.5,Specifications Display,Required specs for inventory,/content-hub/:id,All with access,No,N/A,
161
+ 3,5.2.5.1,Required Dimensions,Expected dimensions,/content-hub/:id,All with access,No,N/A,
162
+ 3,5.2.5.2,Accepted Formats,Supported file formats,/content-hub/:id,All with access,No,N/A,
163
+ 3,5.2.5.3,Max File Size,Maximum allowed size,/content-hub/:id,All with access,No,N/A,
164
+ 3,5.2.5.4,Max Duration,Maximum video duration,/content-hub/:id,All with access,No,N/A,
165
+ 0,6,Geotargeting,Location-based targeting interface,/geotargeting,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",No,N/A,
166
+ 1,6.1,Geotargeting Page,Full-page map interface,/geotargeting,All with access,No,N/A,
167
+ 2,6.1.1,Map Container,Mapbox map display,/geotargeting,All with access,No,N/A,
168
+ 3,6.1.1.1,Map View,Interactive map,/geotargeting,All with access,No,N/A,
169
+ 3,6.1.1.2,Zoom Controls,Zoom in/out,/geotargeting,All with access,No,N/A,
170
+ 3,6.1.1.3,Map Style Toggle,Switch map styles,/geotargeting,All with access,Yes,Standard,
171
+ 2,6.1.2,Drawing Tools,Shape drawing controls,/geotargeting,All with access,No,N/A,
172
+ 3,6.1.2.1,Draw Polygon Tool,Draw custom polygon,/geotargeting,All with access,No,N/A,
173
+ 3,6.1.2.2,Draw Circle Tool,Draw radius circle,/geotargeting,All with access,No,N/A,
174
+ 3,6.1.2.3,Draw Rectangle Tool,Draw rectangle,/geotargeting,All with access,No,N/A,
175
+ 3,6.1.2.4,Edit Shape Tool,Modify existing shapes,/geotargeting,All with access,No,N/A,
176
+ 3,6.1.2.5,Delete Shape Tool,Remove shapes,/geotargeting,All with access,No,N/A,
177
+ 2,6.1.3,POI Search,Point of Interest search,/geotargeting,All with access,No,N/A,
178
+ 3,6.1.3.1,Search Input,Search for POIs,/geotargeting,All with access,No,N/A,
179
+ 3,6.1.3.2,Category Filter,Filter by POI category,/geotargeting,All with access,No,N/A,
180
+ 3,6.1.3.3,Radius Slider,Set search radius,/geotargeting,All with access,No,N/A,
181
+ 3,6.1.3.4,POI Results List,List of matching POIs,/geotargeting,All with access,No,N/A,
182
+ 2,6.1.4,Transit Inventory,Transit screen visualization,/geotargeting,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
183
+ 3,6.1.4.1,Transit Routes Layer,Display transit routes,/geotargeting,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
184
+ 3,6.1.4.2,Transit Stops Layer,Display transit stops,/geotargeting,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
185
+ 3,6.1.4.3,Vehicle Positions Layer,Real-time vehicle positions,/geotargeting,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
186
+ 2,6.1.5,Selected Areas Panel,List of targeted areas,/geotargeting,All with access,No,N/A,
187
+ 3,6.1.5.1,Area List,List of selected areas,/geotargeting,All with access,No,N/A,
188
+ 3,6.1.5.2,Remove Area Button,Remove area from selection,/geotargeting,All with access,No,N/A,
189
+ 3,6.1.5.3,Clear All Button,Remove all areas,/geotargeting,All with access,No,N/A,
190
+ 2,6.1.6,Actions,Save and cancel,/geotargeting,All with access,No,N/A,
191
+ 3,6.1.6.1,Cancel Button,Discard changes,/geotargeting,All with access,No - Required,N/A,
192
+ 3,6.1.6.2,Apply Button,Apply targeting,/geotargeting,All with access,No - Required,N/A,
193
+ 0,7,Proof of Play,Playback verification system,/proof-of-play,"MO:Operations Manager|MO:Ad Operations|MO:Finance Manager|MW:Super Admin|MW:Finance",No,N/A,
194
+ 1,7.1,Proof of Play List Page,List of play records,/proof-of-play,All with access,No,N/A,
195
+ 2,7.1.1,Page Header,Title and actions,/proof-of-play,All with access,No,N/A,
196
+ 3,7.1.1.1,Page Title,Proof of Play heading,/proof-of-play,All with access,No,N/A,
197
+ 3,7.1.1.2,Upload Playlog Button,Upload manual playlog,/proof-of-play,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
198
+ 2,7.1.2,PoP Table,List of play records,/proof-of-play,All with access,No,N/A,
199
+ 3,7.1.2.1,Proof Media Column,Image/video thumbnail,/proof-of-play,All with access,No,N/A,
200
+ 3,7.1.2.2,Inventory Column,Screen name and reference,/proof-of-play,All with access,No,N/A,
201
+ 3,7.1.2.3,Player Column,Device ID,/proof-of-play,All with access,No,N/A,
202
+ 3,7.1.2.4,Creative Column,Creative name,/proof-of-play,All with access,No,N/A,
203
+ 3,7.1.2.5,Deal/Line Item Column,Associated deal and line item,/proof-of-play,All with access,No,N/A,
204
+ 3,7.1.2.6,Play Time Column,Start time and calculated duration,/proof-of-play,All with access,No,N/A,
205
+ 3,7.1.2.7,Status Column,Record status,/proof-of-play,All with access,No,N/A,
206
+ 3,7.1.2.8,Actions Column,View/Edit/Delete,/proof-of-play,All with access,No,N/A,
207
+ 2,7.1.3,Filter Panel,Filter play records,/proof-of-play,All with access,No,N/A,
208
+ 3,7.1.3.1,Date Range Filter,Filter by date,/proof-of-play,All with access,No,N/A,
209
+ 3,7.1.3.2,Deal Filter,Filter by deal,/proof-of-play,All with access,No,N/A,
210
+ 3,7.1.3.3,Inventory Filter,Filter by screen,/proof-of-play,All with access,No,N/A,
211
+ 3,7.1.3.4,Status Filter,Filter by status,/proof-of-play,All with access,No,N/A,
212
+ 1,7.2,PoP Record Detail,View individual record,/proof-of-play/:id,All with access,No,N/A,
213
+ 2,7.2.1,Proof Media Preview,Full preview of proof,/proof-of-play/:id,All with access,No,N/A,
214
+ 2,7.2.2,Record Details,Metadata and timing,/proof-of-play/:id,All with access,No,N/A,
215
+ 2,7.2.3,Edit Button,Edit record,/proof-of-play/:id,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
216
+ 2,7.2.4,Delete Button,Delete record,/proof-of-play/:id,"MO:Administrator|MW:Super Admin",Yes,Hidden,
217
+ 0,8,Playlog Upload,Manual playlog upload system,/playlogs,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",No,N/A,
218
+ 1,8.1,Playlog Upload Page,Upload interface,/playlogs/upload,All with access,No,N/A,
219
+ 2,8.1.1,Template Section,Download template,/playlogs/upload,All with access,No,N/A,
220
+ 3,8.1.1.1,Download Template Button,Get CSV template,/playlogs/upload,All with access,No,N/A,
221
+ 3,8.1.1.2,Deal Pre-fill Select,Pre-fill deal ID in template,/playlogs/upload,All with access,Yes,None,
222
+ 3,8.1.1.3,Line Item Pre-fill Select,Pre-fill line item ID,/playlogs/upload,All with access,Yes,None,
223
+ 2,8.1.2,Upload Section,File upload,/playlogs/upload,All with access,No,N/A,
224
+ 3,8.1.2.1,File Upload Input,Select file to upload,/playlogs/upload,All with access,No - Required,N/A,
225
+ 3,8.1.2.2,Upload Button,Submit file,/playlogs/upload,All with access,No - Required,N/A,
226
+ 1,8.2,Playlog History Page,List of uploaded playlogs,/playlogs,All with access,No,N/A,
227
+ 2,8.2.1,Playlog Table,List of uploads,/playlogs,All with access,No,N/A,
228
+ 3,8.2.1.1,File Name Column,Original filename,/playlogs,All with access,No,N/A,
229
+ 3,8.2.1.2,Deal Column,Associated deal,/playlogs,All with access,No,N/A,
230
+ 3,8.2.1.3,Line Item Column,Associated line item,/playlogs,All with access,No,N/A,
231
+ 3,8.2.1.4,Media Owner Column,Uploading media owner,/playlogs,All with access,No,N/A,
232
+ 3,8.2.1.5,Records Column,Total/valid/invalid counts,/playlogs,All with access,No,N/A,
233
+ 3,8.2.1.6,Uploaded Column,Date and user,/playlogs,All with access,No,N/A,
234
+ 3,8.2.1.7,Status Column,Processing status,/playlogs,All with access,No,N/A,
235
+ 3,8.2.1.8,Actions Column,Delete action,/playlogs,All with access,No,N/A,
236
+ 0,9,Integrations,External system connections,/integrations,"MW:Super Admin|MO:Operations Manager|MW:Technical Operations",No,N/A,
237
+ 1,9.1,Integrations List Page,List of integrations,/integrations,All with access,No,N/A,
238
+ 2,9.1.1,CMS Integrations Section,Content Management Systems,/integrations,All with access,No,N/A,
239
+ 3,9.1.1.1,Add CMS Button,Add new CMS integration,/integrations,"MW:Super Admin|MW:Technical Operations",Yes,Hidden,
240
+ 3,9.1.1.2,CMS Cards,List of connected CMS,/integrations,All with access,No,N/A,
241
+ 2,9.1.2,SSP Integrations Section,Supply-Side Platforms,/integrations,All with access,No,N/A,
242
+ 3,9.1.2.1,Add SSP Button,Add new SSP integration,/integrations,"MW:Super Admin|MW:Technical Operations",Yes,Hidden,
243
+ 3,9.1.2.2,SSP Cards,List of connected SSPs,/integrations,All with access,No,N/A,
244
+ 2,9.1.3,DSP Integrations Section,Demand-Side Platforms,/integrations,All with access,No,N/A,
245
+ 3,9.1.3.1,Add DSP Button,Add new DSP integration,/integrations,"MW:Super Admin|MW:Technical Operations",Yes,Hidden,
246
+ 3,9.1.3.2,DSP Cards,List of connected DSPs,/integrations,All with access,No,N/A,
247
+ 1,9.2,Integration Detail Page,View integration details,/integrations/:id,All with access,No,N/A,
248
+ 2,9.2.1,Integration Status,Connection status,/integrations/:id,All with access,No,N/A,
249
+ 2,9.2.2,Sync Settings,Synchronization options,/integrations/:id,"MW:Super Admin|MW:Technical Operations",Yes,Hidden,
250
+ 2,9.2.3,Test Connection Button,Test integration,/integrations/:id,"MW:Super Admin|MW:Technical Operations",Yes,Hidden,
251
+ 2,9.2.4,Disconnect Button,Remove integration,/integrations/:id,"MW:Super Admin",Yes,Hidden,
252
+ 0,10,Reports,Analytics and reporting,/reports,All,No,N/A,
253
+ 1,10.1,Reports Dashboard,Main reports page,/reports,All,No,N/A,
254
+ 2,10.1.1,Report Type Selector,Choose report type,/reports,All,No,N/A,
255
+ 3,10.1.1.1,Campaign Performance,Performance metrics,/reports,All,No,N/A,
256
+ 3,10.1.1.2,Revenue Report,Revenue analytics,/reports,"MO:Finance Manager|MO:Billing Admin|AG:Account Director|MW:Super Admin|MW:Finance",Yes,Hidden,
257
+ 3,10.1.1.3,Inventory Report,Inventory utilization,/reports,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
258
+ 3,10.1.1.4,Proof of Play Report,PoP analytics,/reports,"MO:Operations Manager|MO:Finance Manager|MW:Super Admin",Yes,Hidden,
259
+ 2,10.1.2,Date Range Selector,Filter by date,/reports,All,No,N/A,
260
+ 2,10.1.3,Export Section,Download reports,/reports,All,No,N/A,
261
+ 3,10.1.3.1,Export CSV Button,Download as CSV,/reports,All,No,N/A,
262
+ 3,10.1.3.2,Export PDF Button,Download as PDF,/reports,All,Yes,Hidden,
263
+ 3,10.1.3.3,Schedule Report Button,Set up recurring export,/reports,"MO:Administrator|AG:Account Director|MW:Super Admin",Yes,Hidden,
264
+ 0,11,Settings,System configuration,/settings,All,No,N/A,
265
+ 1,11.1,Settings Page,Configure system preferences,/settings,All,No,N/A,
266
+ 2,11.1.1,General Settings Section,Basic configuration,/settings,All,No,N/A,
267
+ 3,11.1.1.1,Company Name Input,Organization name,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Current company name,
268
+ 3,11.1.1.2,Timezone Select,Default timezone,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,UTC,
269
+ 3,11.1.1.3,Default Currency Select,Default currency,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,USD,
270
+ 3,11.1.1.4,Date Format Select,Date display format,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,MMM DD YYYY,
271
+ 2,11.1.2,Notifications Section,Notification preferences,/settings,All,No,N/A,
272
+ 3,11.1.2.1,Email Notifications Toggle,Enable email alerts,/settings,All,Yes,true,
273
+ 3,11.1.2.2,Deal Updates Toggle,Deal status notifications,/settings,All,Yes,true,
274
+ 3,11.1.2.3,Budget Alerts Toggle,Budget threshold alerts,/settings,"MO:Finance Manager|AG:Account Director|MW:Super Admin|MW:Finance",Yes,true,
275
+ 3,11.1.2.4,Creative Approvals Toggle,Creative status notifications,/settings,"MO:Content Manager|MO:Creative Approver|AG:Creative Director|MW:Super Admin",Yes,true,
276
+ 2,11.1.3,Security Section,Security settings,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin|MW:Security",No,N/A,
277
+ 3,11.1.3.1,Two-Factor Authentication Toggle,Enable 2FA,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin|MW:Security",Yes,false,
278
+ 3,11.1.3.2,Session Timeout Select,Auto-logout duration,/settings,"MO:Administrator|AG:Administrator|MW:Super Admin|MW:Security",Yes,30 minutes,
279
+ 3,11.1.3.3,IP Whitelist Input,Allowed IP addresses,/settings,"MO:Administrator|MW:Super Admin|MW:Security",Yes,Empty,
280
+ 2,11.1.4,Display Section,UI preferences,/settings,All,No,N/A,
281
+ 3,11.1.4.1,Theme Toggle,Light/Dark mode,/settings,All,Yes,Light,
282
+ 3,11.1.4.2,Compact Mode Toggle,Dense UI layout,/settings,All,Yes,false,
283
+ 3,11.1.4.3,Language Select,Interface language,/settings,All,Yes,English,
284
+ 2,11.1.5,Save Settings Button,Save all settings,/settings,All,No - Required,N/A,
285
+ 0,12,Header/User Menu,Top header and user controls,All Pages,All,No,N/A,
286
+ 1,12.1,Application Header,Top navigation bar,All Pages,All,No,N/A,
287
+ 2,12.1.1,Sidebar Toggle Button,Collapse/expand sidebar,All Pages,All,No,N/A,
288
+ 2,12.1.2,Theme Toggle Button,Switch light/dark mode,All Pages,All,Yes,Hidden (use system),
289
+ 2,12.1.3,User Menu Dropdown,User account menu,All Pages,All,No,N/A,
290
+ 3,12.1.3.1,User Name Display,Current user name,All Pages,All,No,N/A,
291
+ 3,12.1.3.2,User Role Display,Current user role,All Pages,All,No,N/A,
292
+ 3,12.1.3.3,Profile Link,Navigate to profile,All Pages,All,No,N/A,
293
+ 3,12.1.3.4,Settings Link,Navigate to settings,All Pages,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Hidden,
294
+ 3,12.1.3.5,Logout Button,Sign out of application,All Pages,All,No - Required,N/A,
295
+ 0,13,Change Log/History,Audit trail for entities,Various,All,No,N/A,
296
+ 1,13.1,Deal Change Log,History of deal modifications,/deals/:id,All,Yes,Hidden,
297
+ 2,13.1.1,Change Log Table,List of changes,/deals/:id,All,No,N/A,
298
+ 3,13.1.1.1,Timestamp Column,When change occurred,/deals/:id,All,No,N/A,
299
+ 3,13.1.1.2,User Column,Who made change,/deals/:id,All,No,N/A,
300
+ 3,13.1.1.3,Field Column,What was changed,/deals/:id,All,No,N/A,
301
+ 3,13.1.1.4,Old Value Column,Previous value,/deals/:id,All,No,N/A,
302
+ 3,13.1.1.5,New Value Column,Updated value,/deals/:id,All,No,N/A,
303
+ 1,13.2,Line Item Change Log,History of line item modifications,/line-items/:id,All,Yes,Hidden,
304
+ 1,13.3,Creative Change Log,History of creative modifications,/content-hub/:id,All,Yes,Hidden,
305
+ 0,14,Signals,Data signals management,/signals,"MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden from sidebar,
306
+ 1,14.1,Signals List Page,List of data signals,/signals,All with access,No,N/A,
307
+ 2,14.1.1,Page Header,Title and create button,/signals,All with access,No,N/A,
308
+ 3,14.1.1.1,Page Title,Signals heading,/signals,All with access,No,N/A,
309
+ 3,14.1.1.2,Create Signal Button,Add new signal,/signals,"MO:Ad Operations|MW:Super Admin",Yes,Hidden,
310
+ 2,14.1.2,Signals Table,Data table of signals,/signals,All with access,No,N/A,
311
+ 3,14.1.2.1,Signal Name Column,Signal name,/signals,All with access,No,N/A,
312
+ 3,14.1.2.2,Type Column,Signal type,/signals,All with access,No,N/A,
313
+ 3,14.1.2.3,Status Column,Active/Inactive,/signals,All with access,No,N/A,
314
+ 3,14.1.2.4,Source Column,Data source,/signals,All with access,No,N/A,
315
+ 3,14.1.2.5,Actions Column,Edit/Delete,/signals,All with access,No,N/A,
316
+ 1,14.2,Signal Detail/Form,Create/edit signal,/signals/:id,"MO:Ad Operations|MW:Super Admin",No,N/A,
317
+ 2,14.2.1,Signal Name Input,Enter signal name,/signals/:id,All with access,No - Required,N/A,
318
+ 2,14.2.2,Signal Type Select,Select signal type,/signals/:id,All with access,No - Required,N/A,
319
+ 2,14.2.3,Data Source Config,Configure data source,/signals/:id,All with access,No,N/A,
320
+ 2,14.2.4,Trigger Conditions,Set trigger rules,/signals/:id,All with access,No,N/A,
321
+ 2,14.2.5,Save Button,Save signal,/signals/:id,All with access,No - Required,N/A,
322
+ 0,15,Venues,Venue management,/venues,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden from sidebar,
323
+ 1,15.1,Venues List Page,List all venues,/venues,All with access,No,N/A,
324
+ 2,15.1.1,Page Header,Title and create button,/venues,All with access,No,N/A,
325
+ 3,15.1.1.1,Page Title,Venues heading,/venues,All with access,No,N/A,
326
+ 3,15.1.1.2,Create Venue Button,Add new venue,/venues,"MO:Operations Manager|MW:Super Admin",Yes,Hidden,
327
+ 2,15.1.2,Search & Filter Bar,Search and filter venues,/venues,All with access,No,N/A,
328
+ 3,15.1.2.1,Search Input,Text search,/venues,All with access,No,N/A,
329
+ 3,15.1.2.2,Type Filter Select,Filter by venue type,/venues,All with access,No,N/A,
330
+ 2,15.1.3,Venues Table,List of venues,/venues,All with access,No,N/A,
331
+ 3,15.1.3.1,Venue Name Column,Venue name,/venues,All with access,No,N/A,
332
+ 3,15.1.3.2,Type Column,Venue type badge,/venues,All with access,No,N/A,
333
+ 3,15.1.3.3,Location Column,City and country,/venues,All with access,No,N/A,
334
+ 3,15.1.3.4,Screens Count Column,Number of screens,/venues,All with access,No,N/A,
335
+ 3,15.1.3.5,Actions Column,Edit/Delete actions,/venues,All with access,No,N/A,
336
+ 2,15.1.4,Venue Actions,Per-venue actions,/venues,All with access,No,N/A,
337
+ 3,15.1.4.1,Edit Venue Action,Edit venue details,/venues,"MO:Operations Manager|MW:Super Admin",Yes,Hidden,
338
+ 3,15.1.4.2,Delete Venue Action,Remove venue,/venues,"MO:Administrator|MW:Super Admin",Yes,Hidden,
339
+ 1,15.2,Create/Edit Venue Form,Form for venues,/venues/new or /venues/:id/edit,"MO:Operations Manager|MW:Super Admin",No,N/A,
340
+ 2,15.2.1,Venue Name Input,Enter venue name,/venues/new,All with access,No - Required,N/A,
341
+ 2,15.2.2,Venue Type Select,Select venue type,/venues/new,All with access,No - Required,N/A,
342
+ 2,15.2.3,Address Input,Venue address,/venues/new,All with access,Yes,Empty,
343
+ 2,15.2.4,City Input,Venue city,/venues/new,All with access,Yes,Empty,
344
+ 2,15.2.5,Country Select,Venue country,/venues/new,All with access,Yes,Empty,
345
+ 2,15.2.6,Save Venue Button,Save venue,/venues/new,All with access,No - Required,N/A,
346
+ 0,16,Line Items List,Line items overview page,/line-items,All,Yes,Access via Deal only,
347
+ 1,16.1,Line Items List Page,List all line items,/line-items,All,No,N/A,
348
+ 2,16.1.1,Page Header,Title and actions,/line-items,All,No,N/A,
349
+ 3,16.1.1.1,Page Title,Line Items heading,/line-items,All,No,N/A,
350
+ 2,16.1.2,Search & Filter Bar,Search and filter,/line-items,All,No,N/A,
351
+ 3,16.1.2.1,Search Input,Text search,/line-items,All,No,N/A,
352
+ 3,16.1.2.2,Filter Button,Open filter drawer,/line-items,All,No,N/A,
353
+ 2,16.1.3,Line Items Table,Data table,/line-items,All,No,N/A,
354
+ 3,16.1.3.1,Line Item Name Column,Name with link,/line-items,All,No,N/A,
355
+ 3,16.1.3.2,Status Column,Status badge,/line-items,All,No,N/A,
356
+ 3,16.1.3.3,Deal Column,Associated deal,/line-items,All,No,N/A,
357
+ 3,16.1.3.4,Priority Column,Priority level,/line-items,All,No,N/A,
358
+ 3,16.1.3.5,Budget Column,Line item budget,/line-items,"MO:Finance Manager|AG:Account Director|MW:Super Admin|MW:Finance",Yes,Hidden,
359
+ 3,16.1.3.6,CPM Column,Cost per mille,/line-items,"MO:Finance Manager|AG:Media Buyer|MW:Super Admin|MW:Finance",Yes,Hidden,
360
+ 3,16.1.3.7,Dates Column,Start/end dates,/line-items,All,No,N/A,
361
+ 3,16.1.3.8,Progress Column,Delivery progress,/line-items,All,No,N/A,
362
+ 3,16.1.3.9,Actions Column,Row actions,/line-items,All,No,N/A,
363
+ 2,16.1.4,Row Actions Menu,Per-line item actions,/line-items,All,No,N/A,
364
+ 3,16.1.4.1,View Details Action,Open line item,/line-items,All,No,N/A,
365
+ 3,16.1.4.2,Edit Action,Edit line item,/line-items,"MO:Ad Operations|MO:Campaign Planner|AG:Media Planner|MW:Super Admin",Yes,Hidden,
366
+ 3,16.1.4.3,Pause/Activate Action,Toggle status,/line-items,"MO:Ad Operations|MW:Super Admin",Yes,Hidden,
367
+ 3,16.1.4.4,Delete Action,Delete line item,/line-items,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Hidden,
368
+ 2,16.1.5,Filter Drawer,Right-side filter panel,/line-items,All,No,N/A,
369
+ 3,16.1.5.1,Status Filter,Filter by status,/line-items,All,No,N/A,
370
+ 3,16.1.5.2,Deal Filter,Filter by deal,/line-items,All,No,N/A,
371
+ 3,16.1.5.3,Date Range Filter,Filter by dates,/line-items,All,No,N/A,
372
+ 3,16.1.5.4,Budget Range Filter,Filter by budget,/line-items,"MO:Finance Manager|MW:Super Admin|MW:Finance",Yes,Hidden,
373
+ 3,16.1.5.5,CPM Range Filter,Filter by CPM,/line-items,"MO:Finance Manager|MW:Super Admin|MW:Finance",Yes,Hidden,
374
+ 0,17,Creative Assignment,Assign creatives to line items,/line-items/:id/creatives,"MO:Ad Operations|MO:Content Manager|AG:Media Planner|MW:Super Admin",No,N/A,
375
+ 1,17.1,Creative Assignment Page,Full-page drag-drop interface,/line-items/:id/creatives,All with access,No,N/A,
376
+ 2,17.1.1,Available Creatives Panel,List of available creatives,/line-items/:id/creatives,All with access,No,N/A,
377
+ 3,17.1.1.1,Creative Search,Search available creatives,/line-items/:id/creatives,All with access,No,N/A,
378
+ 3,17.1.1.2,Creative Filter,Filter by type/status,/line-items/:id/creatives,All with access,No,N/A,
379
+ 3,17.1.1.3,Draggable Creative Cards,Creative items to assign,/line-items/:id/creatives,All with access,No,N/A,
380
+ 2,17.1.2,Assignment Drop Zone,Drop area for assignment,/line-items/:id/creatives,All with access,No,N/A,
381
+ 3,17.1.2.1,Assigned Creative List,Currently assigned creatives,/line-items/:id/creatives,All with access,No,N/A,
382
+ 3,17.1.2.2,Remove Assignment Button,Unassign creative,/line-items/:id/creatives,All with access,No,N/A,
383
+ 3,17.1.2.3,Reorder Controls,Change creative order,/line-items/:id/creatives,All with access,No,N/A,
384
+ 2,17.1.3,Player Status Section,CMS player status display,/line-items/:id/creatives,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
385
+ 3,17.1.3.1,Player Online Status,Online/Offline indicator,/line-items/:id/creatives,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
386
+ 3,17.1.3.2,Last Heartbeat,Last communication time,/line-items/:id/creatives,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
387
+ 3,17.1.3.3,Content Playing,Currently playing content,/line-items/:id/creatives,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
388
+ 2,17.1.4,Actions,Save and cancel,/line-items/:id/creatives,All with access,No,N/A,
389
+ 3,17.1.4.1,Cancel Button,Discard changes,/line-items/:id/creatives,All with access,No - Required,N/A,
390
+ 3,17.1.4.2,Save Button,Save assignments,/line-items/:id/creatives,All with access,No - Required,N/A,
391
+ 0,18,Advertiser Portal,Advertiser-specific views,/advertiser,"AD:Administrator|AD:Marketing Manager|AD:Brand Manager|AD:Approver|AD:Viewer",Yes,Hidden for non-advertisers,
392
+ 1,18.1,Advertiser Dashboard,Advertiser overview,/advertiser,"AD:Administrator|AD:Marketing Manager|AD:Viewer",No,N/A,
393
+ 2,18.1.1,Campaign Overview,Active campaigns summary,/advertiser,All advertisers,No,N/A,
394
+ 2,18.1.2,Pending Approvals,Items awaiting approval,/advertiser,"AD:Administrator|AD:Approver",Yes,Hidden,
395
+ 2,18.1.3,Performance Summary,Key metrics,/advertiser,All advertisers,No,N/A,
396
+ 1,18.2,Advertiser Creatives,Creative management for advertisers,/advertiser/creatives,All advertisers,No,N/A,
397
+ 2,18.2.1,Upload Creative Button,Upload new creative,/advertiser/creatives,"AD:Administrator|AD:Brand Manager",Yes,Hidden,
398
+ 2,18.2.2,Creative List,List of uploaded creatives,/advertiser/creatives,All advertisers,No,N/A,
399
+ 2,18.2.3,Approval Status,Creative approval status,/advertiser/creatives,All advertisers,No,N/A,
400
+ 1,18.3,Advertiser Reports,Advertiser reporting,/advertiser/reports,All advertisers,No,N/A,
401
+ 2,18.3.1,Campaign Performance,Performance by campaign,/advertiser/reports,All advertisers,No,N/A,
402
+ 2,18.3.2,Export Reports,Download reports,/advertiser/reports,All advertisers,No,N/A,
403
+ 0,19,Partner/Reseller Portal,Partner-specific features,/partner,"TP:Administrator|TP:Account Manager|TP:Sales Manager|TP:Operations|PT:Administrator|PT:Account Manager",Yes,Hidden for non-partners,
404
+ 1,19.1,Partner Dashboard,Partner overview,/partner,All partners,No,N/A,
405
+ 2,19.1.1,Client Summary,Client account overview,/partner,All partners,No,N/A,
406
+ 2,19.1.2,Revenue Summary,Partner revenue,/partner,"TP:Administrator|TP:Sales Manager|PT:Administrator",Yes,Hidden,
407
+ 1,19.2,Client Management,Manage partner clients,/partner/clients,"TP:Administrator|TP:Account Manager|PT:Administrator|PT:Account Manager",No,N/A,
408
+ 2,19.2.1,Client List,List of clients,/partner/clients,All with access,No,N/A,
409
+ 2,19.2.2,Add Client Button,Create new client,/partner/clients,"TP:Administrator|PT:Administrator",Yes,Hidden,
410
+ 2,19.2.3,Client Detail,Client information,/partner/clients/:id,All with access,No,N/A,
411
+ 1,19.3,Inventory Allocation,Allocate inventory to clients,/partner/inventory,"TP:Administrator|TP:Operations|PT:Administrator",No,N/A,
412
+ 2,19.3.1,Available Inventory,Inventory pool,/partner/inventory,All with access,No,N/A,
413
+ 2,19.3.2,Allocation Controls,Assign inventory,/partner/inventory,All with access,No,N/A,
414
+ 0,20,CMS Player Status,Player monitoring from CMS,Various,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden,
415
+ 1,20.1,Player Status Display,Read-only player info,/line-items/:id/creatives,All with access,No,N/A,
416
+ 2,20.1.1,Online Status Indicator,Player online/offline,/line-items/:id/creatives,All with access,No,N/A,
417
+ 2,20.1.2,Heartbeat Timestamp,Last communication,/line-items/:id/creatives,All with access,No,N/A,
418
+ 2,20.1.3,Current Content Display,What's playing now,/line-items/:id/creatives,All with access,No,N/A,
419
+ 0,21,Deal Workflows,Deal acceptance and locking,/deals/:id,"MO:Administrator|AG:Account Director|MW:Super Admin",No,N/A,
420
+ 1,21.1,Request Acceptance Flow,Send deal for acceptance,/deals/:id,"MO:Administrator|AG:Account Director|MW:Super Admin",No,N/A,
421
+ 2,21.1.1,Request Acceptance Button,Initiate acceptance,/deals/:id,All with access,No,N/A,
422
+ 2,21.1.2,Confirmation Dialog,Confirm request,/deals/:id,All with access,No,N/A,
423
+ 2,21.1.3,Locked Banner,Deal is locked warning,/deals/:id,All,No,N/A,
424
+ 1,21.2,Reopen Flow,Reopen locked deal,/deals/:id,"MO:Administrator|AG:Account Director|MW:Super Admin",No,N/A,
425
+ 2,21.2.1,Reopen Button,Initiate reopen,/deals/:id,All with access,No,N/A,
426
+ 2,21.2.2,Reopen Reason Input,Reason for reopening,/deals/:id,All with access,No - Required,N/A,
427
+ 2,21.2.3,Sync Notification,External system sync notice,/deals/:id,All with access,No,N/A,
428
+ 0,22,RFP Workflow,Request for Proposal management,/rfp,"MO:Sales Rep|MO:Campaign Planner|AG:Media Planner|AG:Media Buyer|MW:Super Admin|MW:Sales",Yes,Hidden if not enabled,
429
+ 1,22.1,RFP List Page,List of RFPs,/rfp,All with access,No,N/A,
430
+ 2,22.1.1,Page Header,Title and create button,/rfp,All with access,No,N/A,
431
+ 2,22.1.2,RFP Table,Data table of RFPs,/rfp,All with access,No,N/A,
432
+ 1,22.2,Create RFP Form,New RFP form,/rfp/new,All with access,No,N/A,
433
+ 2,22.2.1,RFP Name Input,Enter RFP name,/rfp/new,All with access,No - Required,N/A,
434
+ 2,22.2.2,Client Select,Select client,/rfp/new,All with access,No - Required,N/A,
435
+ 2,22.2.3,Requirements Section,RFP requirements,/rfp/new,All with access,No,N/A,
436
+ 2,22.2.4,Save RFP Button,Save RFP,/rfp/new,All with access,No - Required,N/A,
437
+ 0,23,Configuration Menu,Configuration dropdown in sidebar,Sidebar,All,No,N/A,
438
+ 1,23.1,Configuration Dropdown,Expandable menu section,Sidebar,All,No,N/A,
439
+ 2,23.1.1,Signals Link,Navigate to Signals,Sidebar > Configuration,"MO:Ad Operations|MW:Super Admin|MW:Technical Operations",Yes,Hidden from menu,
440
+ 2,23.1.2,Custom POIs Link,Navigate to Custom POIs,Sidebar > Configuration,All,No,N/A,
441
+ 2,23.1.3,Tags Link,Navigate to Tags,Sidebar > Configuration,All,No,N/A,
442
+ 2,23.1.4,Settings Link,Navigate to Settings,Sidebar > Configuration,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Hidden from menu,
443
+ 0,24,Custom POIs,Custom Points of Interest management,/custom-pois,All,No,N/A,
444
+ 1,24.1,Custom POIs List Page,POI library interface,/custom-pois,All,No,N/A,
445
+ 2,24.1.1,Page Header,Title and actions,/custom-pois,All,No,N/A,
446
+ 3,24.1.1.1,Page Title,Custom POIs heading,/custom-pois,All,No,N/A,
447
+ 3,24.1.1.2,Upload POIs Button,Bulk upload via CSV,/custom-pois,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
448
+ 3,24.1.1.3,Create POI Button,Add single POI,/custom-pois,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
449
+ 2,24.1.2,Search & Filter Bar,Search and filter POIs,/custom-pois,All,No,N/A,
450
+ 3,24.1.2.1,Search Input,Text search,/custom-pois,All,No,N/A,
451
+ 3,24.1.2.2,Category Filter,Filter by category,/custom-pois,All,No,N/A,
452
+ 2,24.1.3,POI Table,List of POIs,/custom-pois,All,No,N/A,
453
+ 3,24.1.3.1,Name Column,POI name,/custom-pois,All,No,N/A,
454
+ 3,24.1.3.2,Category Column,POI category badge,/custom-pois,All,No,N/A,
455
+ 3,24.1.3.3,Location Column,City and country,/custom-pois,All,No,N/A,
456
+ 3,24.1.3.4,Radius Column,Radius in meters,/custom-pois,All,No,N/A,
457
+ 3,24.1.3.5,Status Column,Active/Inactive badge,/custom-pois,All,No,N/A,
458
+ 3,24.1.3.6,Created Column,Date and user,/custom-pois,All,No,N/A,
459
+ 3,24.1.3.7,Actions Column,Row actions menu,/custom-pois,All,No,N/A,
460
+ 2,24.1.4,Row Actions,Per-POI actions,/custom-pois,All,No,N/A,
461
+ 3,24.1.4.1,View on Map Action,Show POI on map,/custom-pois,All,No,N/A,
462
+ 3,24.1.4.2,Edit Action,Edit POI details,/custom-pois,"MO:Operations Manager|MO:Ad Operations|MW:Super Admin",Yes,Hidden,
463
+ 3,24.1.4.3,Delete Action,Remove POI,/custom-pois,"MO:Administrator|MW:Super Admin",Yes,Hidden,
464
+ 1,24.2,Upload POIs Dialog,Bulk upload interface,/custom-pois,All,No,N/A,
465
+ 2,24.2.1,Download Template Button,Get CSV template,/custom-pois,All,No,N/A,
466
+ 2,24.2.2,File Upload Input,Select CSV file,/custom-pois,All,No - Required,N/A,
467
+ 2,24.2.3,Upload Button,Submit file,/custom-pois,All,No - Required,N/A,
468
+ 1,24.3,Create POI Dialog,Single POI form,/custom-pois,All,No,N/A,
469
+ 2,24.3.1,POI Name Input,Enter POI name,/custom-pois,All,No - Required,N/A,
470
+ 2,24.3.2,Category Select,Select category,/custom-pois,All,No - Required,N/A,
471
+ 2,24.3.3,Latitude Input,Enter latitude,/custom-pois,All,No - Required,N/A,
472
+ 2,24.3.4,Longitude Input,Enter longitude,/custom-pois,All,No - Required,N/A,
473
+ 2,24.3.5,Address Input,Enter address,/custom-pois,All,Yes,Empty,
474
+ 2,24.3.6,City Input,Enter city,/custom-pois,All,Yes,Empty,
475
+ 2,24.3.7,Country Input,Enter country,/custom-pois,All,Yes,Empty,
476
+ 2,24.3.8,Radius Input,Enter radius,/custom-pois,All,Yes,500,
477
+ 2,24.3.9,Create Button,Save POI,/custom-pois,All,No - Required,N/A,
478
+ 0,25,Tags,Tag management system,/tags,All,No,N/A,
479
+ 1,25.1,Tags List Page,Tag library interface,/tags,All,No,N/A,
480
+ 2,25.1.1,Page Header,Title and create button,/tags,All,No,N/A,
481
+ 3,25.1.1.1,Page Title,Tags heading,/tags,All,No,N/A,
482
+ 3,25.1.1.2,Create Tag Button,Add new tag,/tags,All,Yes,Hidden,
483
+ 2,25.1.2,Search Bar,Search tags,/tags,All,No,N/A,
484
+ 2,25.1.3,Tags Table,List of tags,/tags,All,No,N/A,
485
+ 3,25.1.3.1,Tag Column,Name with color indicator,/tags,All,No,N/A,
486
+ 3,25.1.3.2,Description Column,Tag description,/tags,All,No,N/A,
487
+ 3,25.1.3.3,Usage Column,Deals/creatives/line items count,/tags,All,No,N/A,
488
+ 3,25.1.3.4,Created Column,Date and user,/tags,All,No,N/A,
489
+ 3,25.1.3.5,Actions Column,Row actions menu,/tags,All,No,N/A,
490
+ 2,25.1.4,Row Actions,Per-tag actions,/tags,All,No,N/A,
491
+ 3,25.1.4.1,Edit Action,Edit tag,/tags,All,Yes,Hidden,
492
+ 3,25.1.4.2,View Usage Action,See tag usage,/tags,All,No,N/A,
493
+ 3,25.1.4.3,Delete Action,Remove tag,/tags,"MO:Administrator|AG:Administrator|MW:Super Admin",Yes,Hidden,
494
+ 1,25.2,Create Tag Dialog,New tag form,/tags,All,No,N/A,
495
+ 2,25.2.1,Tag Name Input,Enter tag name,/tags,All,No - Required,N/A,
496
+ 2,25.2.2,Description Input,Enter description,/tags,All,Yes,Empty,
497
+ 2,25.2.3,Color Picker,Select tag color,/tags,All,Yes,#3B82F6,
498
+ 2,25.2.4,Create Button,Save tag,/tags,All,No - Required,N/A,
@@ -0,0 +1,14 @@
1
+ import { defineConfig } from "drizzle-kit";
2
+
3
+ if (!process.env.DATABASE_URL) {
4
+ throw new Error("DATABASE_URL, ensure the database is provisioned");
5
+ }
6
+
7
+ export default defineConfig({
8
+ out: "./migrations",
9
+ schema: "./shared/schema.ts",
10
+ dialect: "postgresql",
11
+ dbCredentials: {
12
+ url: process.env.DATABASE_URL,
13
+ },
14
+ });