| 1 | <template> |
| 2 | <div class="customer-ai-notifications"> |
| 3 | <n-tabs type="segment" animated tab-class="px-4! py-1!" class="[&_.n-tabs-nav]:mx-auto [&_.n-tabs-nav]:mb-6"> |
| 4 | <n-tab-pane name="routes" tab="Routes" display-directive="show:lazy" class="p-0!"> |
| 5 | <CustomerAiNotificationRoutes :customer-code /> |
| 6 | </n-tab-pane> |
| 7 | <n-tab-pane |
| 8 | name="shuffle_integrations" |
| 9 | tab="Shuffle integrations" |
| 10 | display-directive="show:lazy" |
| 11 | class="p-0!" |
| 12 | > |
| 13 | <CustomerShuffleIntegrations :customer-code /> |
| 14 | </n-tab-pane> |
| 15 | <n-tab-pane name="dispatch_log" tab="Dispatch log" display-directive="show:lazy" class="pt-3!"> |
| 16 | <CustomerAiNotificationDispatchLog :customer-code /> |
| 17 | </n-tab-pane> |
| 18 | </n-tabs> |
| 19 | </div> |
| 20 | </template> |
| 21 | |
| 22 | <script setup lang="ts"> |
| 23 | // Container for the per-customer "AI Notifications" tab. Three |
| 24 | // sub-tabs: |
| 25 | // - Routes: CRUD list + form for notification rules |
| 26 | // - Shuffle integrations: CRUD for the customer's Shuffle Org-Id rows |
| 27 | // used by 'shuffle'-channel routes |
| 28 | // - Dispatch log: read-only audit trail of every dispatch attempt |
| 29 | import { NTabPane, NTabs } from "naive-ui" |
| 30 | import CustomerAiNotificationDispatchLog from "./CustomerAiNotificationDispatchLog.vue" |
| 31 | import CustomerAiNotificationRoutes from "./CustomerAiNotificationRoutes/CustomerAiNotificationRoutes.vue" |
| 32 | import CustomerShuffleIntegrations from "./CustomerShuffleIntegrations/CustomerShuffleIntegrations.vue" |
| 33 | |
| 34 | defineProps<{ |
| 35 | customerCode: string |
| 36 | }>() |
| 37 | </script> |