import type { DashboardStats, SessionInfo, } from '@/services/api/adminService'; const dailyRevenue = [ 12400, 15820, 11250, 18640, 22100, 19880, 25400, 17320, 20950, 16780, 24110, 28840, 21560, 30120, 18940, 22670, 27450, 19830, 31200, 26780, 18440, 23900, 29150, 21880, 33500, 27640, 19220, 24880, 30750, 28410, ].map((revenue, index) => { const day = String(index + 1).padStart(2, '0'); return { date: `08-${day}`, revenue, orders: Math.max(4, Math.round(revenue / 1850)), }; }); export const MOCK_DASHBOARD_STATS: DashboardStats = { total_users: 184, total_orders: 326, total_products: 148, total_brands: 22, total_device_models: 86, total_device_series: 31, total_categories: 18, revenue_all_time: 1852580, revenue_last_30_days: 684320, revenue_last_7_days: 186280, orders_by_status: { pending: 28, confirmed: 42, processing: 36, shipped: 51, delivered: 142, cancelled: 18, returned: 9, }, revenue_chart_daily: dailyRevenue, revenue_chart_monthly: [ { label: 'January', revenue: 98200, orders: 42 }, { label: 'February', revenue: 114500, orders: 51 }, { label: 'March', revenue: 128800, orders: 58 }, { label: 'April', revenue: 121400, orders: 54 }, { label: 'May', revenue: 142600, orders: 63 }, { label: 'June', revenue: 156200, orders: 71 }, { label: 'July', revenue: 168900, orders: 76 }, { label: 'August', revenue: 184320, orders: 82 }, ], top_products: [ { name: 'iPhone 15 OLED Display Assembly', total_sold: 86, total_revenue: 412800 }, { name: 'Samsung S23 Ultra Battery', total_sold: 64, total_revenue: 198400 }, { name: 'iPhone 14 Charging Port Flex', total_sold: 51, total_revenue: 86700 }, { name: 'OnePlus 12 Back Glass Panel', total_sold: 38, total_revenue: 64600 }, { name: 'Pixel 8 Pro Camera Module', total_sold: 24, total_revenue: 91200 }, ], recent_orders: [ { order_no: 'IFK-10482', amount: 4899, status: 'delivered', payment_status: 'paid', created_at: '2026-08-30T09:12:00Z', customer_name: 'Arjun Mehta', customer_email: 'arjun.mehta@gmail.com', }, { order_no: 'IFK-10481', amount: 2199, status: 'shipped', payment_status: 'paid', created_at: '2026-08-30T07:44:00Z', customer_name: 'Priya Nair', customer_email: 'priya.nair@gmail.com', }, { order_no: 'IFK-10480', amount: 7499, status: 'processing', payment_status: 'paid', created_at: '2026-08-29T18:21:00Z', customer_name: 'Rahul Iyer', customer_email: 'rahul.iyer@outlook.com', }, { order_no: 'IFK-10479', amount: 1299, status: 'confirmed', payment_status: 'paid', created_at: '2026-08-29T15:08:00Z', customer_name: 'Sneha Kapoor', customer_email: 'sneha.kapoor@gmail.com', }, { order_no: 'IFK-10478', amount: 3499, status: 'pending', payment_status: 'unpaid', created_at: '2026-08-29T11:36:00Z', customer_name: 'Vikram Shah', customer_email: 'vikram.shah@yahoo.com', }, { order_no: 'IFK-10477', amount: 899, status: 'cancelled', payment_status: 'refunded', created_at: '2026-08-28T20:02:00Z', customer_name: 'Ananya Rao', customer_email: 'ananya.rao@gmail.com', }, ], low_stock_variants: 14, out_of_stock_variants: 6, total_stock_units: 4280, }; export const MOCK_DASHBOARD_SESSIONS: SessionInfo[] = [ { session_id: 'sess_ui_01', user_id: 'usr_admin', device_name: 'Office Desktop', device_type: 'desktop', browser: 'Chrome 128.0.0', operating_system: 'Windows 11', ip_address: '106.219.180.207', expires_at: '2026-08-31T18:00:00Z', is_active: true, }, { session_id: 'sess_ui_02', user_id: 'usr_admin', device_name: 'MacBook Pro', device_type: 'desktop', browser: 'Safari 18.2', operating_system: 'macOS Sequoia', ip_address: '49.36.112.44', expires_at: '2026-08-31T16:30:00Z', is_active: true, }, { session_id: 'sess_ui_03', user_id: 'usr_manager', device_name: 'Pixel 8', device_type: 'mobile', browser: 'Chrome 127.0.0', operating_system: 'Android 15', ip_address: '152.58.204.19', expires_at: '2026-08-31T12:10:00Z', is_active: true, }, { session_id: 'sess_ui_04', user_id: 'usr_tech', device_name: 'iPad Air', device_type: 'tablet', browser: 'Safari 18.1', operating_system: 'iPadOS 18', ip_address: '103.21.244.12', expires_at: '2026-08-31T09:45:00Z', is_active: true, }, { session_id: 'sess_ui_05', user_id: 'usr_staff', device_name: 'Store Counter PC', device_type: 'desktop', browser: 'Edge 127.0.0', operating_system: 'Windows 10', ip_address: '117.99.80.63', expires_at: '2026-08-30T22:00:00Z', is_active: true, }, ]; export function withDashboardMock( stats: DashboardStats | null, sessions: SessionInfo[], ): { stats: DashboardStats; sessions: SessionInfo[] } { if (stats) { return { stats: { total_users: stats.total_users ?? 0, total_orders: stats.total_orders ?? 0, total_products: stats.total_products ?? 0, total_brands: stats.total_brands ?? 0, total_device_models: stats.total_device_models ?? 0, total_device_series: stats.total_device_series ?? 0, total_categories: stats.total_categories ?? 0, revenue_all_time: stats.revenue_all_time ?? 0, revenue_last_30_days: stats.revenue_last_30_days ?? 0, revenue_last_7_days: stats.revenue_last_7_days ?? 0, orders_by_status: stats.orders_by_status ?? {}, revenue_chart_daily: stats.revenue_chart_daily ?? [], revenue_chart_monthly: stats.revenue_chart_monthly ?? [], top_products: stats.top_products ?? [], recent_orders: stats.recent_orders ?? [], low_stock_variants: stats.low_stock_variants ?? 0, out_of_stock_variants: stats.out_of_stock_variants ?? 0, total_stock_units: stats.total_stock_units ?? 0, }, sessions: sessions ?? [], }; } return { stats: MOCK_DASHBOARD_STATS, sessions: MOCK_DASHBOARD_SESSIONS, }; }