Adds the read-side Umami integration queued in last week's website-analytics plan (Phases 1–6 of `docs/website-analytics-flesh-out-plan.md`): - Realtime panel polls Umami at 5s intervals; world map renders visitor origins via echarts + `public/world-map/echarts-world.json` topo. - Sessions list + session-detail-sheet drill-down (per-session event timeline pulled from `/api/v1/website-analytics`). - Weekly heatmap (day-of-week × hour-of-day) for engagement timing. - Metric-detail pages under `/[portSlug]/website-analytics/[metric]` for pageviews / referrers / events deep-dives. - Email-pixel write path: `/api/public/email-pixel/[sendId]` 1×1 GIF beacon backed by `email_open_tracking` (migration 0076); resolves inline on render in inbox. - Tracked-link redirect: `/q/[slug]` routes through `tracked_links` (migration 0077) and forwards to the canonical destination after logging the click. - Dashboard `website-glance-tile` now reads from the live Umami service instead of placeholder data. Deps: `@umami/node`, `echarts`, `echarts-for-react`, `@types/geojson`, `@types/topojson-client`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
80 lines
1.6 KiB
TypeScript
80 lines
1.6 KiB
TypeScript
// Ports
|
|
export * from './ports';
|
|
|
|
// Users & Auth
|
|
export * from './users';
|
|
|
|
// Clients
|
|
export * from './clients';
|
|
|
|
// Companies
|
|
export * from './companies';
|
|
|
|
// Yachts
|
|
export * from './yachts';
|
|
|
|
// Interests
|
|
export * from './interests';
|
|
|
|
// Berths
|
|
export * from './berths';
|
|
|
|
// Reservations
|
|
export * from './reservations';
|
|
|
|
// Documents & Files
|
|
export * from './documents';
|
|
|
|
// Brochures + send-outs (Phase 7)
|
|
export * from './brochures';
|
|
|
|
// Financial
|
|
export * from './financial';
|
|
|
|
// Email
|
|
export * from './email';
|
|
|
|
// Email bounces (DSN poller storage)
|
|
export * from './email-bounces';
|
|
|
|
// Portal (client-portal auth)
|
|
export * from './portal';
|
|
|
|
// CRM admin invites (better-auth realm)
|
|
export * from './crm-invites';
|
|
|
|
// Residential (parallel domain - separate clients & interests for the
|
|
// external residential team)
|
|
export * from './residential';
|
|
|
|
// Operations
|
|
export * from './operations';
|
|
|
|
// System
|
|
export * from './system';
|
|
|
|
// Insights (Phase B): alerts, analytics_snapshots
|
|
export * from './insights';
|
|
|
|
// AI usage ledger (Phase 3b)
|
|
export * from './ai-usage';
|
|
|
|
// GDPR export tracking (Phase 3d)
|
|
export * from './gdpr';
|
|
|
|
// Migration ledger (one-shot scripts - NocoDB import etc.)
|
|
export * from './migration';
|
|
|
|
// Website submissions (dual-write capture from the marketing site)
|
|
export * from './website-submissions';
|
|
|
|
// Pre-EOI supplemental form tokens
|
|
export * from './supplemental-forms';
|
|
|
|
// Pipeline refactor — qualification criteria, payment records
|
|
export * from './pipeline';
|
|
|
|
// Relations (must come last - references all tables)
|
|
export * from './relations';
|
|
export * from './tracked-links';
|