feat(admin): analytics dashboard

Sprint 27.

New features/admin/analytics/ module + net-new /:lang/backoffice/analytics
route + Dashboard Quick Action.

- revenue/orders/avg-order-value/sales-over-time/top-products computed by
  composing AdminOrdersLocalGateway (Sprint 23's seeded mock orders) - real
  aggregation over mock data, not a separate fabricated dataset
- products/categories counts from AdminProductsLocalGateway/
  AdminCategoriesLocalGateway
- visitors/funnels/heatmaps render pending-backend badges (no analytics
  pipeline exists anywhere in this system) rather than fabricated numbers,
  same convention as the Sprint 19 dashboard's pre-Sprint-23 Orders/Revenue
  cards
- plain div-bar chart (no charting library), 7/30/90-day range toggle,
  CSV export

docs/ADMIN.md + docs/BACKEND.md (new item 16) updated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-15 11:17:55 +04:00
parent a67ea17ad2
commit 88cc131fdc
11 changed files with 264 additions and 2 deletions

View File

@@ -0,0 +1,22 @@
export type AdminAnalyticsDateRange = 7 | 30 | 90;
export interface AdminAnalyticsSummary {
revenueTotal: number;
currency: string;
ordersCount: number;
avgOrderValue: number;
productsCount: number;
categoriesCount: number;
}
export interface AdminAnalyticsSeriesPoint {
date: string;
value: number;
}
export interface AdminAnalyticsTopProduct {
productId: string;
name: string;
quantity: number;
revenue: number;
}