@burdenoff/microfe-adaptercloud 2026.614.1

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 (132) hide show
  1. package/README.md +12 -0
  2. package/dist/adaptercloud/AdapterCloudRoot.js +177 -0
  3. package/dist/adaptercloud/AdapterCloudRoot.js.map +1 -0
  4. package/dist/adaptercloud/AdapterCloudRoutes.js +215 -0
  5. package/dist/adaptercloud/AdapterCloudRoutes.js.map +1 -0
  6. package/dist/adaptercloud/components/EmptyState.js +28 -0
  7. package/dist/adaptercloud/components/EmptyState.js.map +1 -0
  8. package/dist/adaptercloud/components/InvestmentCard.js +96 -0
  9. package/dist/adaptercloud/components/InvestmentCard.js.map +1 -0
  10. package/dist/adaptercloud/components/MetricsCard.js +46 -0
  11. package/dist/adaptercloud/components/MetricsCard.js.map +1 -0
  12. package/dist/adaptercloud/components/PageLayout.js +26 -0
  13. package/dist/adaptercloud/components/PageLayout.js.map +1 -0
  14. package/dist/adaptercloud/components/RatingDisplay.js +35 -0
  15. package/dist/adaptercloud/components/RatingDisplay.js.map +1 -0
  16. package/dist/adaptercloud/components/StatusBadge.js +45 -0
  17. package/dist/adaptercloud/components/StatusBadge.js.map +1 -0
  18. package/dist/adaptercloud/context/AdapterCloudContext.js +93 -0
  19. package/dist/adaptercloud/context/AdapterCloudContext.js.map +1 -0
  20. package/dist/adaptercloud/context/index.js +1 -0
  21. package/dist/adaptercloud/hooks/useAdapterCloudApi.js +223 -0
  22. package/dist/adaptercloud/hooks/useAdapterCloudApi.js.map +1 -0
  23. package/dist/adaptercloud/index.js +7 -0
  24. package/dist/adaptercloud/mocks/data.js +1517 -0
  25. package/dist/adaptercloud/mocks/data.js.map +1 -0
  26. package/dist/adaptercloud/mocks/users.js +34 -0
  27. package/dist/adaptercloud/mocks/users.js.map +1 -0
  28. package/dist/adaptercloud/pages/HomePage.js +921 -0
  29. package/dist/adaptercloud/pages/HomePage.js.map +1 -0
  30. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +645 -0
  31. package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -0
  32. package/dist/adaptercloud/pages/admin/AdminDashboard.js +639 -0
  33. package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -0
  34. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +421 -0
  35. package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -0
  36. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +660 -0
  37. package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -0
  38. package/dist/adaptercloud/pages/admin/AdminProfilePage.js +259 -0
  39. package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -0
  40. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +649 -0
  41. package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -0
  42. package/dist/adaptercloud/pages/admin/CartManagementPage.js +869 -0
  43. package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -0
  44. package/dist/adaptercloud/pages/admin/UserManagementPage.js +893 -0
  45. package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -0
  46. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +834 -0
  47. package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -0
  48. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +700 -0
  49. package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -0
  50. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +760 -0
  51. package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -0
  52. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +886 -0
  53. package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -0
  54. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +631 -0
  55. package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -0
  56. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +913 -0
  57. package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -0
  58. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +881 -0
  59. package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -0
  60. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +833 -0
  61. package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -0
  62. package/dist/adaptercloud/pages/common/HelpSupportPage.js +1325 -0
  63. package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -0
  64. package/dist/adaptercloud/pages/common/NotificationCenterPage.js +665 -0
  65. package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -0
  66. package/dist/adaptercloud/pages/common/SettingsPage.js +964 -0
  67. package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -0
  68. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +593 -0
  69. package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -0
  70. package/dist/adaptercloud/pages/customer/CartDetailPage.js +620 -0
  71. package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -0
  72. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +547 -0
  73. package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -0
  74. package/dist/adaptercloud/pages/customer/CheckoutPage.js +532 -0
  75. package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -0
  76. package/dist/adaptercloud/pages/customer/CustomerDashboard.js +496 -0
  77. package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -0
  78. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +621 -0
  79. package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -0
  80. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +623 -0
  81. package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -0
  82. package/dist/adaptercloud/pages/customer/FavoritesPage.js +477 -0
  83. package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -0
  84. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +438 -0
  85. package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -0
  86. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +388 -0
  87. package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -0
  88. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +488 -0
  89. package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -0
  90. package/dist/adaptercloud/pages/customer/ReviewsPage.js +606 -0
  91. package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -0
  92. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +443 -0
  93. package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -0
  94. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +849 -0
  95. package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -0
  96. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +939 -0
  97. package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -0
  98. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +681 -0
  99. package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -0
  100. package/dist/adaptercloud/pages/investor/InvestorDashboard.js +419 -0
  101. package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -0
  102. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +399 -0
  103. package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -0
  104. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +569 -0
  105. package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -0
  106. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +1065 -0
  107. package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -0
  108. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +496 -0
  109. package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -0
  110. package/dist/adaptercloud/pages/worker/WorkerDashboard.js +634 -0
  111. package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -0
  112. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +675 -0
  113. package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -0
  114. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +687 -0
  115. package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -0
  116. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +578 -0
  117. package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -0
  118. package/dist/adaptercloud/store/adaptercloudStore.js +38 -0
  119. package/dist/adaptercloud/store/adaptercloudStore.js.map +1 -0
  120. package/dist/adaptercloud/store/index.js +1 -0
  121. package/dist/adaptercloud/utils/cn.js +10 -0
  122. package/dist/adaptercloud/utils/cn.js.map +1 -0
  123. package/dist/adaptercloud/utils/formatters.js +51 -0
  124. package/dist/adaptercloud/utils/formatters.js.map +1 -0
  125. package/dist/adaptercloud/utils/navigation.js +9 -0
  126. package/dist/adaptercloud/utils/navigation.js.map +1 -0
  127. package/dist/index.js +7 -0
  128. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +18 -0
  129. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
  130. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
  131. package/dist/node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  132. package/package.json +106 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","names":[],"sources":["../../../src/adaptercloud/mocks/data.ts"],"sourcesContent":["/**\n * AdapterCloud Mock Data\n *\n * Central mock data store for the AdapterCloud microfrontend.\n * Contains mock service providers (carts), orders, investments,\n * worker tasks, admin analytics, and helper functions.\n *\n * @module adaptercloud/mocks/data\n */\n\nimport type {\n MockCart,\n MockOrder,\n MockProduct,\n InvestmentOpportunity,\n Investment,\n DashboardStats,\n AdminAnalytics,\n WorkerTask,\n WorkerSchedule,\n WorkerStats,\n OrderStatus,\n} from '../types';\n\n// ============================================================================\n// SERVICE PROVIDERS (MOCK CARTS)\n// ============================================================================\n\nexport const mockCarts: MockCart[] = [\n // ---- FOOD & BEVERAGE ----\n {\n id: 'FOOD-001',\n name: 'Dosa Express',\n category: 'Food & Beverage',\n rating: 4.5,\n totalRatings: 324,\n distance: 0.5,\n estimatedTime: 20,\n image: 'https://images.unsplash.com/photo-1567620905732-2d1ec7ab7445?w=400',\n images: ['https://images.unsplash.com/photo-1567620905732-2d1ec7ab7445?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Koramangala 5th Block, Bangalore',\n coordinates: { lat: 12.9352, lng: 77.6245 },\n },\n averageOrderValue: 180,\n serviceTypes: ['delivery', 'pickup'],\n menu: [\n {\n id: 'food-1',\n name: 'Masala Dosa',\n price: 120,\n description: 'Crispy dosa with spiced potato filling',\n image: 'https://images.unsplash.com/photo-1630383249896-424e482df921?w=300',\n category: 'South Indian',\n isVeg: true,\n duration: 15,\n },\n {\n id: 'food-2',\n name: 'Filter Coffee',\n price: 60,\n description: 'Traditional South Indian filter coffee',\n image: 'https://images.unsplash.com/photo-1559496417-e7f25cb247f3?w=300',\n category: 'Beverages',\n isVeg: true,\n duration: 5,\n },\n ],\n },\n {\n id: 'FOOD-002',\n name: 'Chaat Corner',\n category: 'Food & Beverage',\n rating: 4.2,\n totalRatings: 156,\n distance: 0.8,\n estimatedTime: 15,\n image: 'https://images.unsplash.com/photo-1601050690597-df0568f70950?w=400',\n images: ['https://images.unsplash.com/photo-1601050690597-df0568f70950?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Brigade Road, Central Bangalore',\n coordinates: { lat: 12.9716, lng: 77.5946 },\n },\n averageOrderValue: 140,\n serviceTypes: ['delivery', 'pickup'],\n menu: [\n {\n id: 'food-3',\n name: 'Pani Puri',\n price: 80,\n description: 'Crispy puris with tangy water',\n image: 'https://images.unsplash.com/photo-1625398407796-82bd8ad6ba4d?w=300',\n category: 'Street Food',\n isVeg: true,\n duration: 10,\n },\n {\n id: 'food-4',\n name: 'Bhel Puri',\n price: 70,\n description: 'Mixed puffed rice with chutneys',\n image: 'https://images.unsplash.com/photo-1606491956689-2ea866880c84?w=300',\n category: 'Street Food',\n isVeg: true,\n duration: 8,\n },\n ],\n },\n {\n id: 'FOOD-003',\n name: 'Biryani Pot',\n category: 'Food & Beverage',\n rating: 4.6,\n totalRatings: 412,\n distance: 1.2,\n estimatedTime: 35,\n image: 'https://images.unsplash.com/photo-1563379091339-03b21ab4a4f8?w=400',\n images: ['https://images.unsplash.com/photo-1563379091339-03b21ab4a4f8?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Frazer Town, Bangalore',\n coordinates: { lat: 12.9975, lng: 77.6113 },\n },\n averageOrderValue: 320,\n serviceTypes: ['delivery', 'pickup'],\n menu: [\n {\n id: 'food-5',\n name: 'Chicken Biryani',\n price: 280,\n description: 'Hyderabadi-style dum biryani with tender chicken',\n image: 'https://images.unsplash.com/photo-1563379091339-03b21ab4a4f8?w=300',\n category: 'Biryani',\n isVeg: false,\n spiceLevel: 'medium',\n duration: 30,\n },\n {\n id: 'food-6',\n name: 'Veg Biryani',\n price: 220,\n description: 'Fragrant vegetable biryani with saffron',\n image: 'https://images.unsplash.com/photo-1589302168068-964664d93dc0?w=300',\n category: 'Biryani',\n isVeg: true,\n spiceLevel: 'mild',\n duration: 25,\n },\n ],\n },\n\n // ---- PERSONAL CARE & BEAUTY ----\n {\n id: 'SERV-001',\n name: 'Quick Cuts Salon',\n category: 'Personal Care & Beauty',\n rating: 4.6,\n totalRatings: 248,\n distance: 0.3,\n estimatedTime: 30,\n image: 'https://images.unsplash.com/photo-1562322140-8baeececf3df?w=400',\n images: ['https://images.unsplash.com/photo-1562322140-8baeececf3df?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Indiranagar, Bangalore',\n coordinates: { lat: 12.9784, lng: 77.6408 },\n },\n averageOrderValue: 350,\n serviceTypes: ['home_service', 'appointment'],\n menu: [\n {\n id: 'serv-1',\n name: \"Men's Haircut\",\n price: 300,\n description: 'Professional haircut and styling',\n image: 'https://images.unsplash.com/photo-1503951914875-452162b0f3f1?w=300',\n category: 'Hair Services',\n isVeg: true,\n duration: 30,\n serviceType: 'appointment',\n },\n {\n id: 'serv-2',\n name: 'Beard Trim',\n price: 150,\n description: 'Beard trimming and shaping',\n image: 'https://images.unsplash.com/photo-1621647117777-49a282d6878b?w=300',\n category: 'Hair Services',\n isVeg: true,\n duration: 20,\n serviceType: 'appointment',\n },\n {\n id: 'serv-3',\n name: 'Hair Wash',\n price: 100,\n description: 'Relaxing hair wash with premium shampoo',\n image: 'https://images.unsplash.com/photo-1560066984-138dadb4c035?w=300',\n category: 'Hair Services',\n isVeg: true,\n duration: 15,\n serviceType: 'instant',\n },\n ],\n },\n {\n id: 'SERV-002',\n name: 'Glow Beauty Services',\n category: 'Personal Care & Beauty',\n rating: 4.7,\n totalRatings: 189,\n distance: 0.6,\n estimatedTime: 45,\n image: 'https://images.unsplash.com/photo-1570172619644-dfd03ed5d881?w=400',\n images: ['https://images.unsplash.com/photo-1570172619644-dfd03ed5d881?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Koramangala, Bangalore',\n coordinates: { lat: 12.9352, lng: 77.6245 },\n },\n averageOrderValue: 800,\n serviceTypes: ['home_service', 'on_location'],\n menu: [\n {\n id: 'beauty-1',\n name: 'Facial Treatment',\n price: 800,\n description: 'Deep cleansing facial with natural ingredients',\n image: 'https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?w=300',\n category: 'Skincare',\n isVeg: true,\n duration: 60,\n serviceType: 'appointment',\n },\n {\n id: 'beauty-2',\n name: 'Manicure & Pedicure',\n price: 600,\n description: 'Complete nail care and grooming',\n image: 'https://images.unsplash.com/photo-1604654894610-df63bc536371?w=300',\n category: 'Nail Care',\n isVeg: true,\n duration: 45,\n serviceType: 'appointment',\n },\n {\n id: 'beauty-3',\n name: 'Makeup Service',\n price: 1200,\n description: 'Professional makeup for special occasions',\n image: 'https://images.unsplash.com/photo-1487412947147-5cebf100ffc2?w=300',\n category: 'Makeup',\n isVeg: true,\n duration: 90,\n serviceType: 'appointment',\n },\n ],\n },\n\n // ---- REPAIR & MAINTENANCE ----\n {\n id: 'SERV-003',\n name: 'Fix-It Mobile Repair',\n category: 'Repair & Maintenance',\n rating: 4.4,\n totalRatings: 186,\n distance: 0.7,\n estimatedTime: 45,\n image: 'https://images.unsplash.com/photo-1556656793-08538906a9f8?w=400',\n images: ['https://images.unsplash.com/photo-1556656793-08538906a9f8?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Jayanagar, Bangalore',\n coordinates: { lat: 12.9279, lng: 77.5837 },\n },\n averageOrderValue: 1400,\n serviceTypes: ['on_location', 'home_service'],\n menu: [\n {\n id: 'repair-1',\n name: 'Mobile Screen Repair',\n price: 2500,\n description: 'Screen replacement for all smartphone models',\n image: 'https://images.unsplash.com/photo-1588508065123-287b28e013da?w=300',\n category: 'Mobile Repair',\n isVeg: true,\n duration: 60,\n serviceType: 'instant',\n },\n {\n id: 'repair-2',\n name: 'Battery Replacement',\n price: 1200,\n description: 'Original battery replacement service',\n image: 'https://images.unsplash.com/photo-1609592806285-f2e7b5c8a9c6?w=300',\n category: 'Mobile Repair',\n isVeg: true,\n duration: 30,\n serviceType: 'instant',\n },\n {\n id: 'repair-3',\n name: 'Software Issues',\n price: 500,\n description: 'Virus removal and software troubleshooting',\n image: 'https://images.unsplash.com/photo-1563013544-824ae1b704d3?w=300',\n category: 'Software',\n isVeg: true,\n duration: 45,\n serviceType: 'instant',\n },\n ],\n },\n {\n id: 'SERV-004',\n name: 'TechCare Electronics',\n category: 'Repair & Maintenance',\n rating: 4.3,\n totalRatings: 124,\n distance: 1.1,\n estimatedTime: 60,\n image: 'https://images.unsplash.com/photo-1581092918056-0c4c3acd3789?w=400',\n images: ['https://images.unsplash.com/photo-1581092918056-0c4c3acd3789?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'BTM Layout, Bangalore',\n coordinates: { lat: 12.9165, lng: 77.6101 },\n },\n averageOrderValue: 1800,\n serviceTypes: ['on_location', 'home_service'],\n menu: [\n {\n id: 'tech-1',\n name: 'Laptop Repair',\n price: 1500,\n description: 'Hardware and software issues for laptops',\n image: 'https://images.unsplash.com/photo-1588508065123-287b28e013da?w=300',\n category: 'Computer Repair',\n isVeg: true,\n duration: 120,\n serviceType: 'appointment',\n },\n {\n id: 'tech-2',\n name: 'TV Repair',\n price: 2000,\n description: 'LED/LCD TV repair and maintenance',\n image: 'https://images.unsplash.com/photo-1593784991095-a205069470b6?w=300',\n category: 'Appliance Repair',\n isVeg: true,\n duration: 90,\n serviceType: 'appointment',\n },\n {\n id: 'tech-3',\n name: 'AC Service',\n price: 800,\n description: 'Air conditioner cleaning and maintenance',\n image: 'https://images.unsplash.com/photo-1555503946-1f0f4f9e6e6e?w=300',\n category: 'Appliance Repair',\n isVeg: true,\n duration: 75,\n serviceType: 'appointment',\n },\n ],\n },\n\n // ---- HOME SERVICES ----\n {\n id: 'SERV-005',\n name: 'Spotless Cleaning Services',\n category: 'Home Services',\n rating: 4.8,\n totalRatings: 312,\n distance: 1.2,\n estimatedTime: 60,\n image: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400',\n images: ['https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'HSR Layout, Bangalore',\n coordinates: { lat: 12.9081, lng: 77.6476 },\n },\n averageOrderValue: 1200,\n serviceTypes: ['home_service'],\n menu: [\n {\n id: 'clean-1',\n name: 'Deep House Cleaning',\n price: 1500,\n description: 'Complete house cleaning service',\n image: 'https://images.unsplash.com/photo-1527515637462-cff94eecc1ac?w=300',\n category: 'House Cleaning',\n isVeg: true,\n duration: 180,\n serviceType: 'appointment',\n },\n {\n id: 'clean-2',\n name: 'Bathroom Cleaning',\n price: 400,\n description: 'Thorough bathroom sanitization',\n image: 'https://images.unsplash.com/photo-1584464491033-06628f3a6b7b?w=300',\n category: 'Specialized Cleaning',\n isVeg: true,\n duration: 45,\n serviceType: 'appointment',\n },\n {\n id: 'clean-3',\n name: 'Kitchen Cleaning',\n price: 600,\n description: 'Complete kitchen cleaning and organization',\n image: 'https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=300',\n category: 'Specialized Cleaning',\n isVeg: true,\n duration: 60,\n serviceType: 'appointment',\n },\n ],\n },\n {\n id: 'SERV-006',\n name: 'QuickWash Laundry',\n category: 'Home Services',\n rating: 4.4,\n totalRatings: 156,\n distance: 0.9,\n estimatedTime: 30,\n image: 'https://images.unsplash.com/photo-1545173168-9f1947eebb7f?w=400',\n images: ['https://images.unsplash.com/photo-1545173168-9f1947eebb7f?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Whitefield, Bangalore',\n coordinates: { lat: 12.9698, lng: 77.7499 },\n },\n averageOrderValue: 200,\n serviceTypes: ['pickup', 'delivery'],\n menu: [\n {\n id: 'laundry-1',\n name: 'Wash & Fold',\n price: 80,\n description: 'Regular wash and fold service per kg',\n image: 'https://images.unsplash.com/photo-1545173168-9f1947eebb7f?w=300',\n category: 'Laundry',\n isVeg: true,\n duration: 1440,\n serviceType: 'recurring',\n },\n {\n id: 'laundry-2',\n name: 'Dry Cleaning',\n price: 150,\n description: 'Professional dry cleaning service',\n image: 'https://images.unsplash.com/photo-1558769132-cb1aea458c5e?w=300',\n category: 'Dry Cleaning',\n isVeg: true,\n duration: 2880,\n serviceType: 'appointment',\n },\n {\n id: 'laundry-3',\n name: 'Ironing Service',\n price: 30,\n description: 'Professional ironing per piece',\n image: 'https://images.unsplash.com/photo-1558769132-cb1aea458c5e?w=300',\n category: 'Ironing',\n isVeg: true,\n duration: 720,\n serviceType: 'appointment',\n },\n ],\n },\n {\n id: 'HOME-001',\n name: 'Quick Clean Services',\n category: 'Home Services',\n rating: 4.4,\n totalRatings: 156,\n distance: 0.9,\n estimatedTime: 120,\n image: 'https://images.unsplash.com/photo-1581578731548-c64695cc6952?w=400',\n images: ['https://images.unsplash.com/photo-1581578731548-c64695cc6952?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'HSR Layout Sector 1, Bangalore',\n coordinates: { lat: 12.9082, lng: 77.6476 },\n },\n averageOrderValue: 600,\n serviceTypes: ['appointment', 'home_service'],\n menu: [\n {\n id: 'home-1',\n name: 'House Cleaning',\n price: 800,\n description: 'Complete house cleaning service',\n image: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=300',\n category: 'Cleaning Services',\n isVeg: true,\n duration: 120,\n serviceType: 'appointment',\n },\n {\n id: 'home-2',\n name: 'Laundry Service',\n price: 200,\n description: 'Wash, dry and fold laundry service',\n image: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=300',\n category: 'Laundry Services',\n isVeg: true,\n duration: 1440,\n serviceType: 'appointment',\n },\n ],\n },\n\n // ---- CLOTHING & FASHION ----\n {\n id: 'SERV-007',\n name: 'Stitch Perfect Tailoring',\n category: 'Clothing & Fashion',\n rating: 4.3,\n totalRatings: 94,\n distance: 0.9,\n estimatedTime: 1440,\n image: 'https://images.unsplash.com/photo-1558769132-cb1aea458c5e?w=400',\n images: ['https://images.unsplash.com/photo-1558769132-cb1aea458c5e?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Commercial Street, Bangalore',\n coordinates: { lat: 12.983, lng: 77.606 },\n },\n averageOrderValue: 400,\n serviceTypes: ['on_location', 'home_service'],\n menu: [\n {\n id: 'tailor-1',\n name: 'Shirt Alteration',\n price: 250,\n description: 'Professional shirt fitting and alteration',\n image: 'https://images.unsplash.com/photo-1564859228273-274232fdb516?w=300',\n category: 'Alterations',\n isVeg: true,\n duration: 1440,\n serviceType: 'appointment',\n },\n {\n id: 'tailor-2',\n name: 'Trouser Hemming',\n price: 150,\n description: 'Perfect trouser length adjustment',\n image: 'https://images.unsplash.com/photo-1473966968600-fa801b869a1a?w=300',\n category: 'Alterations',\n isVeg: true,\n duration: 720,\n serviceType: 'appointment',\n },\n {\n id: 'tailor-3',\n name: 'Custom Dress Stitching',\n price: 1200,\n description: 'Made-to-measure dress stitching',\n image: 'https://images.unsplash.com/photo-1515372039744-b8f02a3ae446?w=300',\n category: 'Custom Stitching',\n isVeg: true,\n duration: 4320,\n serviceType: 'appointment',\n },\n ],\n },\n {\n id: 'RETAIL-001',\n name: 'Street Style Fashion',\n category: 'Clothing & Fashion',\n rating: 4.1,\n totalRatings: 67,\n distance: 1.3,\n estimatedTime: 20,\n image: 'https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400',\n images: ['https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'MG Road, Bangalore',\n coordinates: { lat: 12.9716, lng: 77.5946 },\n },\n averageOrderValue: 800,\n serviceTypes: ['on_location', 'delivery'],\n menu: [\n {\n id: 'fashion-1',\n name: 'Trendy T-Shirts',\n price: 500,\n description: 'Latest fashion t-shirts for men and women',\n image: 'https://images.unsplash.com/photo-1521572163474-6864f9cf17ab?w=300',\n category: 'Casual Wear',\n isVeg: true,\n duration: 15,\n },\n {\n id: 'fashion-2',\n name: 'Accessories',\n price: 300,\n description: 'Trendy accessories and jewelry',\n image: 'https://images.unsplash.com/photo-1506629905607-af5c92284aa6?w=300',\n category: 'Accessories',\n isVeg: true,\n duration: 10,\n },\n {\n id: 'fashion-3',\n name: 'Traditional Wear',\n price: 1200,\n description: 'Beautiful traditional Indian clothing',\n image: 'https://images.unsplash.com/photo-1610030469983-98e550d6193c?w=300',\n category: 'Traditional',\n isVeg: true,\n duration: 20,\n },\n ],\n },\n {\n id: 'FASHION-001',\n name: 'Street Style Boutique',\n category: 'Clothing & Fashion',\n rating: 4.1,\n totalRatings: 67,\n distance: 1.2,\n estimatedTime: 25,\n image: 'https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400',\n images: ['https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400'],\n isOpen: true,\n isVerified: false,\n location: {\n address: 'Commercial Street, Bangalore',\n coordinates: { lat: 12.9843, lng: 77.6056 },\n },\n averageOrderValue: 1200,\n serviceTypes: ['pickup', 'delivery'],\n menu: [\n {\n id: 'boutique-1',\n name: 'Cotton T-Shirt',\n price: 500,\n description: 'Premium quality cotton t-shirt',\n image: 'https://images.unsplash.com/photo-1521572163474-6864f9cf17ab?w=300',\n category: 'Casual Clothing',\n isVeg: true,\n duration: 0,\n },\n {\n id: 'boutique-2',\n name: 'Leather Wallet',\n price: 800,\n description: 'Genuine leather wallet with card slots',\n image: 'https://images.unsplash.com/photo-1553062407-98eeb64c6a62?w=300',\n category: 'Accessories',\n isVeg: false,\n duration: 0,\n },\n ],\n },\n\n // ---- HEALTH & WELLNESS ----\n {\n id: 'SERV-008',\n name: 'Wellness Yoga Studio',\n category: 'Health & Wellness',\n rating: 4.7,\n totalRatings: 167,\n distance: 1.5,\n estimatedTime: 90,\n image: 'https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?w=400',\n images: ['https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Whitefield, Bangalore',\n coordinates: { lat: 12.9698, lng: 77.7499 },\n },\n averageOrderValue: 600,\n serviceTypes: ['on_location', 'home_service'],\n menu: [\n {\n id: 'yoga-1',\n name: 'Hatha Yoga Session',\n price: 500,\n description: 'Beginner-friendly yoga session',\n image: 'https://images.unsplash.com/photo-1506629905607-af5c92284aa6?w=300',\n category: 'Yoga',\n isVeg: true,\n duration: 60,\n serviceType: 'appointment',\n },\n {\n id: 'yoga-2',\n name: 'Meditation Session',\n price: 300,\n description: 'Guided meditation and mindfulness',\n image: 'https://images.unsplash.com/photo-1499209974431-9dddcece7f88?w=300',\n category: 'Meditation',\n isVeg: true,\n duration: 45,\n serviceType: 'appointment',\n },\n {\n id: 'yoga-3',\n name: 'Personal Training',\n price: 1000,\n description: 'One-on-one fitness training',\n image: 'https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?w=300',\n category: 'Fitness',\n isVeg: true,\n duration: 60,\n serviceType: 'appointment',\n },\n ],\n },\n {\n id: 'SERV-009',\n name: 'Dr. Health Consultation',\n category: 'Health & Wellness',\n rating: 4.9,\n totalRatings: 203,\n distance: 2.0,\n estimatedTime: 30,\n image: 'https://images.unsplash.com/photo-1559757148-5c350d0d3c56?w=400',\n images: ['https://images.unsplash.com/photo-1559757148-5c350d0d3c56?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Koramangala, Bangalore',\n coordinates: { lat: 12.9352, lng: 77.6245 },\n },\n averageOrderValue: 800,\n serviceTypes: ['consultation', 'home_service'],\n menu: [\n {\n id: 'health-1',\n name: 'General Consultation',\n price: 600,\n description: 'General health consultation and checkup',\n image: 'https://images.unsplash.com/photo-1559757148-5c350d0d3c56?w=300',\n category: 'Consultation',\n isVeg: true,\n duration: 30,\n serviceType: 'consultation',\n },\n {\n id: 'health-2',\n name: 'Physiotherapy',\n price: 800,\n description: 'Professional physiotherapy session',\n image: 'https://images.unsplash.com/photo-1559757175-0eb30cd8c063?w=300',\n category: 'Therapy',\n isVeg: true,\n duration: 45,\n serviceType: 'appointment',\n },\n {\n id: 'health-3',\n name: 'Nutrition Counseling',\n price: 500,\n description: 'Personalized nutrition advice',\n image: 'https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=300',\n category: 'Nutrition',\n isVeg: true,\n duration: 30,\n serviceType: 'consultation',\n },\n ],\n },\n\n // ---- EDUCATION & SKILLS ----\n {\n id: 'SERV-010',\n name: 'Learn Hub Tutoring',\n category: 'Education & Skills',\n rating: 4.5,\n totalRatings: 89,\n distance: 1.8,\n estimatedTime: 90,\n image: 'https://images.unsplash.com/photo-1509062522246-3755977927d7?w=400',\n images: ['https://images.unsplash.com/photo-1509062522246-3755977927d7?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Marathahalli, Bangalore',\n coordinates: { lat: 12.9592, lng: 77.6974 },\n },\n averageOrderValue: 700,\n serviceTypes: ['home_service', 'consultation'],\n menu: [\n {\n id: 'edu-1',\n name: 'Mathematics Tutoring',\n price: 600,\n description: 'One-on-one mathematics tutoring',\n image: 'https://images.unsplash.com/photo-1509062522246-3755977927d7?w=300',\n category: 'Academic',\n isVeg: true,\n duration: 60,\n serviceType: 'recurring',\n },\n {\n id: 'edu-2',\n name: 'English Speaking',\n price: 500,\n description: 'Improve your English speaking skills',\n image: 'https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300',\n category: 'Language',\n isVeg: true,\n duration: 45,\n serviceType: 'recurring',\n },\n {\n id: 'edu-3',\n name: 'Programming Lessons',\n price: 800,\n description: 'Learn programming from basics',\n image: 'https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=300',\n category: 'Technical',\n isVeg: true,\n duration: 90,\n serviceType: 'recurring',\n },\n ],\n },\n\n // ---- RETAIL & MERCHANDISE ----\n {\n id: 'RETAIL-002',\n name: 'Gadget Zone',\n category: 'Retail & Merchandise',\n rating: 4.2,\n totalRatings: 134,\n distance: 1.1,\n estimatedTime: 20,\n image: 'https://images.unsplash.com/photo-1468495244123-6c6c332eeece?w=400',\n images: ['https://images.unsplash.com/photo-1468495244123-6c6c332eeece?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Electronic City, Bangalore',\n coordinates: { lat: 12.8456, lng: 77.6603 },\n },\n averageOrderValue: 1500,\n serviceTypes: ['delivery', 'pickup'],\n menu: [\n {\n id: 'gadget-1',\n name: 'Mobile Accessories',\n price: 500,\n description: 'Cases, chargers, and mobile accessories',\n image: 'https://images.unsplash.com/photo-1468495244123-6c6c332eeece?w=300',\n category: 'Electronics',\n isVeg: true,\n duration: 15,\n },\n {\n id: 'gadget-2',\n name: 'Bluetooth Speakers',\n price: 2000,\n description: 'Portable bluetooth speakers',\n image: 'https://images.unsplash.com/photo-1608043152269-423dbba4e7e1?w=300',\n category: 'Audio',\n isVeg: true,\n duration: 10,\n },\n {\n id: 'gadget-3',\n name: 'Smart Watch',\n price: 5000,\n description: 'Latest smartwatch with fitness tracking',\n image: 'https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=300',\n category: 'Wearables',\n isVeg: true,\n duration: 15,\n },\n ],\n },\n {\n id: 'RETAIL-003',\n name: 'Gadget Zone Brigade',\n category: 'Retail & Merchandise',\n rating: 4.2,\n totalRatings: 98,\n distance: 0.6,\n estimatedTime: 15,\n image: 'https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400',\n images: ['https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Brigade Road, Bangalore',\n coordinates: { lat: 12.9719, lng: 77.6095 },\n },\n averageOrderValue: 2500,\n serviceTypes: ['pickup', 'delivery'],\n menu: [\n {\n id: 'retail-1',\n name: 'Bluetooth Headphones',\n price: 2000,\n description: 'Wireless bluetooth headphones with noise cancellation',\n image: 'https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=300',\n category: 'Electronics',\n isVeg: true,\n duration: 0,\n },\n {\n id: 'retail-2',\n name: 'Phone Case',\n price: 300,\n description: 'Protective phone case with screen guard',\n image: 'https://images.unsplash.com/photo-1556656793-08538906a9f8?w=300',\n category: 'Electronics',\n isVeg: true,\n duration: 0,\n },\n ],\n },\n\n // ---- GROCERY & ESSENTIALS ----\n {\n id: 'RETAIL-004',\n name: 'Fresh Mart Grocery',\n category: 'Grocery & Essentials',\n rating: 4.3,\n totalRatings: 245,\n distance: 0.4,\n estimatedTime: 30,\n image: 'https://images.unsplash.com/photo-1542838132-92c53300491e?w=400',\n images: ['https://images.unsplash.com/photo-1542838132-92c53300491e?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Koramangala, Bangalore',\n coordinates: { lat: 12.9352, lng: 77.6245 },\n },\n averageOrderValue: 800,\n serviceTypes: ['delivery', 'pickup'],\n menu: [\n {\n id: 'grocery-1',\n name: 'Fresh Vegetables',\n price: 200,\n description: 'Farm-fresh vegetables daily',\n image: 'https://images.unsplash.com/photo-1542838132-92c53300491e?w=300',\n category: 'Produce',\n isVeg: true,\n duration: 20,\n },\n {\n id: 'grocery-2',\n name: 'Dairy Products',\n price: 150,\n description: 'Fresh milk, yogurt, and cheese',\n image: 'https://images.unsplash.com/photo-1563636619-e9143da7973b?w=300',\n category: 'Dairy',\n isVeg: true,\n duration: 15,\n },\n {\n id: 'grocery-3',\n name: 'Household Items',\n price: 300,\n description: 'Daily household essentials',\n image: 'https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=300',\n category: 'Household',\n isVeg: true,\n duration: 25,\n },\n ],\n },\n\n // ---- PERSONAL CARE (additional) ----\n {\n id: 'CARE-001',\n name: 'Quick Cuts BTM',\n category: 'Personal Care & Beauty',\n rating: 4.3,\n totalRatings: 89,\n distance: 0.3,\n estimatedTime: 30,\n image: 'https://images.unsplash.com/photo-1522337660859-02fbefca4702?w=400',\n images: ['https://images.unsplash.com/photo-1522337660859-02fbefca4702?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'BTM Layout 2nd Stage, Bangalore',\n coordinates: { lat: 12.9165, lng: 77.6101 },\n },\n averageOrderValue: 250,\n serviceTypes: ['appointment', 'direct_service'],\n menu: [\n {\n id: 'care-1',\n name: \"Men's Haircut\",\n price: 200,\n description: 'Professional haircut and styling',\n image: 'https://images.unsplash.com/photo-1503951914875-452162b0f3f1?w=300',\n category: 'Haircut & Styling',\n isVeg: true,\n duration: 30,\n serviceType: 'appointment',\n },\n {\n id: 'care-2',\n name: 'Beard Trimming',\n price: 100,\n description: 'Beard shaping and trimming service',\n image: 'https://images.unsplash.com/photo-1581282919842-4bb6b6cbf095?w=300',\n category: 'Beard Grooming',\n isVeg: true,\n duration: 20,\n serviceType: 'appointment',\n },\n ],\n },\n\n // ---- REPAIR (additional) ----\n {\n id: 'REPAIR-001',\n name: 'Mobile Fix Pro',\n category: 'Repair & Maintenance',\n rating: 4.6,\n totalRatings: 234,\n distance: 0.7,\n estimatedTime: 45,\n image: 'https://images.unsplash.com/photo-1601784551446-20c9e07cdbdb?w=400',\n images: ['https://images.unsplash.com/photo-1601784551446-20c9e07cdbdb?w=400'],\n isOpen: true,\n isVerified: true,\n location: {\n address: 'Indiranagar 100 Feet Road, Bangalore',\n coordinates: { lat: 12.9719, lng: 77.6412 },\n },\n averageOrderValue: 800,\n serviceTypes: ['direct_service', 'pickup'],\n menu: [\n {\n id: 'mfp-repair-1',\n name: 'Screen Replacement',\n price: 1500,\n description: 'Mobile phone screen replacement service',\n image: 'https://images.unsplash.com/photo-1556656793-08538906a9f8?w=300',\n category: 'Mobile Repair',\n isVeg: true,\n duration: 60,\n serviceType: 'instant',\n },\n {\n id: 'mfp-repair-2',\n name: 'Battery Replacement',\n price: 800,\n description: 'Mobile phone battery replacement',\n image: 'https://images.unsplash.com/photo-1609540786889-e018b84a4a7d?w=300',\n category: 'Mobile Repair',\n isVeg: true,\n duration: 30,\n serviceType: 'instant',\n },\n ],\n },\n];\n\n// ============================================================================\n// MOCK PRODUCTS (Flattened from all service providers)\n// ============================================================================\n\nexport const mockProducts: MockProduct[] = mockCarts.flatMap((cart) =>\n cart.menu.map((item) => ({\n ...item,\n cartId: cart.id,\n cartName: cart.name,\n cart: cart,\n images: [item.image],\n isAvailable: true,\n rating: cart.rating,\n reviewCount: cart.totalRatings,\n stock: 10,\n tags: [cart.category],\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }))\n);\n\n// ============================================================================\n// MOCK ORDERS\n// ============================================================================\n\nexport const mockOrders: MockOrder[] = [\n {\n id: 'ORD-001',\n cartId: 'FOOD-001',\n cartName: 'Dosa Express',\n cartImage: 'https://images.unsplash.com/photo-1567620905732-2d1ec7ab7445?w=400',\n items: [\n {\n id: 'food-1',\n name: 'Masala Dosa',\n quantity: 1,\n price: 120,\n customizations: ['Extra Chutney', 'Less Spicy'],\n },\n {\n id: 'food-2',\n name: 'Filter Coffee',\n quantity: 1,\n price: 60,\n },\n ],\n subtotal: 180,\n taxes: 18,\n deliveryFee: 20,\n total: 218,\n status: 'delivered',\n orderDate: '2024-01-15T10:30:00Z',\n estimatedDeliveryTime: '2024-01-15T11:00:00Z',\n actualDeliveryTime: '2024-01-15T10:55:00Z',\n deliveryAddress: {\n street: '123 Main Street',\n area: 'Koramangala',\n city: 'Bangalore',\n pincode: '560034',\n landmark: 'Near Metro Station',\n },\n paymentMethod: 'UPI',\n paymentStatus: 'completed',\n customerNotes: 'Extra spicy chutney please',\n rating: 4.5,\n review: 'Great taste and quick delivery!',\n timeline: [\n {\n status: 'confirmed',\n timestamp: '2024-01-15T10:30:00Z',\n description: 'Order confirmed',\n },\n {\n status: 'preparing',\n timestamp: '2024-01-15T10:35:00Z',\n description: 'Preparing your food',\n },\n {\n status: 'ready',\n timestamp: '2024-01-15T10:45:00Z',\n description: 'Order ready for pickup',\n },\n {\n status: 'out_for_delivery',\n timestamp: '2024-01-15T10:50:00Z',\n description: 'Out for delivery',\n },\n {\n status: 'delivered',\n timestamp: '2024-01-15T10:55:00Z',\n description: 'Order delivered',\n },\n ],\n assignedWorker: {\n id: 'worker-1',\n name: 'Ravi Kumar',\n phone: '+91-9876543210',\n rating: 4.8,\n },\n },\n {\n id: 'ORD-002',\n cartId: 'SERV-001',\n cartName: 'Quick Cuts Salon',\n cartImage: 'https://images.unsplash.com/photo-1562322140-8baeececf3df?w=400',\n items: [\n {\n id: 'serv-1',\n name: \"Men's Haircut\",\n quantity: 1,\n price: 300,\n },\n {\n id: 'serv-2',\n name: 'Beard Trim',\n quantity: 1,\n price: 150,\n },\n ],\n subtotal: 450,\n taxes: 45,\n deliveryFee: 0,\n total: 495,\n status: 'confirmed',\n orderDate: '2024-01-16T14:00:00Z',\n estimatedDeliveryTime: '2024-01-16T15:30:00Z',\n deliveryAddress: {\n street: '456 Service Road',\n area: 'Indiranagar',\n city: 'Bangalore',\n pincode: '560038',\n landmark: 'Near Park',\n },\n paymentMethod: 'Cash',\n paymentStatus: 'pending',\n customerNotes: 'Please bring your own equipment',\n timeline: [\n {\n status: 'confirmed',\n timestamp: '2024-01-16T14:00:00Z',\n description: 'Appointment confirmed',\n },\n ],\n assignedWorker: {\n id: 'worker-2',\n name: 'Suresh Barber',\n phone: '+91-9876543211',\n rating: 4.6,\n },\n },\n {\n id: 'ORD-003',\n cartId: 'SERV-003',\n cartName: 'Fix-It Mobile Repair',\n cartImage: 'https://images.unsplash.com/photo-1556656793-08538906a9f8?w=400',\n items: [\n {\n id: 'repair-1',\n name: 'Mobile Screen Repair',\n quantity: 1,\n price: 2500,\n },\n ],\n subtotal: 2500,\n taxes: 250,\n deliveryFee: 50,\n total: 2800,\n status: 'preparing',\n orderDate: '2024-01-16T16:00:00Z',\n estimatedDeliveryTime: '2024-01-16T17:00:00Z',\n deliveryAddress: {\n street: '789 Tech Street',\n area: 'Jayanagar',\n city: 'Bangalore',\n pincode: '560041',\n landmark: 'Near Bus Stop',\n },\n paymentMethod: 'Card',\n paymentStatus: 'completed',\n customerNotes: 'iPhone 12 Pro Max screen replacement',\n timeline: [\n {\n status: 'confirmed',\n timestamp: '2024-01-16T16:00:00Z',\n description: 'Repair job confirmed',\n },\n {\n status: 'preparing',\n timestamp: '2024-01-16T16:15:00Z',\n description: 'Technician assigned and working',\n },\n ],\n assignedWorker: {\n id: 'worker-3',\n name: 'Amit Tech',\n phone: '+91-9876543212',\n rating: 4.4,\n },\n },\n];\n\n// ============================================================================\n// MOCK INVESTMENT OPPORTUNITIES\n// ============================================================================\n\nexport const mockInvestmentOpportunities: InvestmentOpportunity[] = [\n {\n id: 'INV-001',\n cartId: 'SERV-001',\n cartName: 'Quick Cuts Salon',\n businessOwner: 'Ravi Kumar',\n targetAmount: 500000,\n raisedAmount: 350000,\n minimumInvestment: 10000,\n expectedReturns: 15,\n investmentPeriod: 24,\n riskLevel: 'low',\n description: 'Expand popular salon services to multiple locations',\n businessPlan: 'Proven business model with steady customer base',\n financialProjections: [\n { month: 6, revenue: 180000, expenses: 120000, profit: 60000 },\n { month: 12, revenue: 350000, expenses: 200000, profit: 150000 },\n { month: 18, revenue: 500000, expenses: 280000, profit: 220000 },\n { month: 24, revenue: 650000, expenses: 350000, profit: 300000 },\n ],\n documents: ['business-plan.pdf', 'financial-records.pdf'],\n investors: [\n {\n investorId: 'inv-user-1',\n investorName: 'Rajesh Mehta',\n investedAmount: 200000,\n investmentDate: '2024-01-20T10:00:00Z',\n },\n {\n investorId: 'inv-user-2',\n investorName: 'Anita Sharma',\n investedAmount: 150000,\n investmentDate: '2024-02-05T14:30:00Z',\n },\n ],\n status: 'active',\n createdAt: '2024-01-15T10:00:00Z',\n expiresAt: '2024-07-15T10:00:00Z',\n },\n {\n id: 'INV-002',\n cartId: 'SERV-003',\n cartName: 'Fix-It Mobile Repair',\n businessOwner: 'Amit Sharma',\n targetAmount: 300000,\n raisedAmount: 150000,\n minimumInvestment: 5000,\n expectedReturns: 20,\n investmentPeriod: 18,\n riskLevel: 'medium',\n description: 'Expand mobile repair services with latest equipment',\n businessPlan: 'Growing demand for mobile repair services',\n financialProjections: [\n { month: 6, revenue: 120000, expenses: 80000, profit: 40000 },\n { month: 12, revenue: 250000, expenses: 150000, profit: 100000 },\n { month: 18, revenue: 400000, expenses: 220000, profit: 180000 },\n ],\n documents: ['business-plan.pdf'],\n investors: [\n {\n investorId: 'inv-user-3',\n investorName: 'Vikram Patel',\n investedAmount: 100000,\n investmentDate: '2024-02-10T09:00:00Z',\n },\n {\n investorId: 'inv-user-1',\n investorName: 'Rajesh Mehta',\n investedAmount: 50000,\n investmentDate: '2024-02-15T11:00:00Z',\n },\n ],\n status: 'active',\n createdAt: '2024-02-01T09:00:00Z',\n expiresAt: '2024-08-01T09:00:00Z',\n },\n {\n id: 'INV-003',\n cartId: 'SERV-005',\n cartName: 'Spotless Cleaning Services',\n businessOwner: 'Priya Cleaning',\n targetAmount: 400000,\n raisedAmount: 400000,\n minimumInvestment: 15000,\n expectedReturns: 18,\n investmentPeriod: 30,\n riskLevel: 'low',\n description: 'Scale cleaning services across the city',\n businessPlan: 'High demand for professional cleaning services',\n financialProjections: [\n { month: 6, revenue: 200000, expenses: 130000, profit: 70000 },\n { month: 12, revenue: 380000, expenses: 220000, profit: 160000 },\n { month: 18, revenue: 550000, expenses: 300000, profit: 250000 },\n { month: 24, revenue: 700000, expenses: 380000, profit: 320000 },\n { month: 30, revenue: 850000, expenses: 450000, profit: 400000 },\n ],\n documents: ['business-plan.pdf', 'financial-records.pdf', 'market-analysis.pdf'],\n investors: [\n {\n investorId: 'inv-user-2',\n investorName: 'Anita Sharma',\n investedAmount: 200000,\n investmentDate: '2023-12-10T08:00:00Z',\n },\n {\n investorId: 'inv-user-3',\n investorName: 'Vikram Patel',\n investedAmount: 200000,\n investmentDate: '2023-12-20T10:00:00Z',\n },\n ],\n status: 'funded',\n createdAt: '2023-12-01T08:00:00Z',\n expiresAt: '2024-06-01T08:00:00Z',\n },\n];\n\nexport const mockActiveInvestments: Investment[] = [\n {\n id: 'INV-HOLD-001',\n opportunityId: 'INV-001',\n cartName: 'Quick Cuts Salon',\n investedAmount: 50000,\n currentValue: 55000,\n returns: 5000,\n returnsPercentage: 10,\n investmentDate: '2024-01-15T10:00:00Z',\n status: 'active',\n },\n {\n id: 'INV-HOLD-002',\n opportunityId: 'INV-002',\n cartName: 'Fix-It Mobile Repair',\n investedAmount: 25000,\n currentValue: 26000,\n returns: 1000,\n returnsPercentage: 4,\n investmentDate: '2024-02-01T09:00:00Z',\n status: 'active',\n },\n];\n\n// ============================================================================\n// MOCK DASHBOARD STATS\n// ============================================================================\n\nexport const mockDashboardStats: DashboardStats = {\n totalOrders: 1247,\n totalRevenue: 892450,\n activeProviders: 21,\n activeCustomers: 534,\n avgRating: 4.45,\n pendingOrders: 12,\n};\n\n// ============================================================================\n// MOCK ADMIN ANALYTICS\n// ============================================================================\n\nexport const mockAdminAnalytics: AdminAnalytics = {\n revenueByCategory: [\n { category: 'Food & Beverage', revenue: 245000, orders: 456 },\n { category: 'Personal Care & Beauty', revenue: 178000, orders: 234 },\n { category: 'Repair & Maintenance', revenue: 156000, orders: 89 },\n { category: 'Home Services', revenue: 134000, orders: 112 },\n { category: 'Clothing & Fashion', revenue: 89000, orders: 156 },\n { category: 'Health & Wellness', revenue: 67000, orders: 78 },\n { category: 'Education & Skills', revenue: 45000, orders: 45 },\n { category: 'Retail & Merchandise', revenue: 52000, orders: 67 },\n { category: 'Grocery & Essentials', revenue: 26450, orders: 34 },\n ],\n orderTrends: [\n { date: '2024-01-01', orders: 32, revenue: 24500 },\n { date: '2024-01-02', orders: 45, revenue: 34200 },\n { date: '2024-01-03', orders: 38, revenue: 28900 },\n { date: '2024-01-04', orders: 52, revenue: 41600 },\n { date: '2024-01-05', orders: 41, revenue: 31200 },\n { date: '2024-01-06', orders: 58, revenue: 45800 },\n { date: '2024-01-07', orders: 63, revenue: 52100 },\n { date: '2024-01-08', orders: 47, revenue: 36400 },\n { date: '2024-01-09', orders: 55, revenue: 43200 },\n { date: '2024-01-10', orders: 49, revenue: 38500 },\n { date: '2024-01-11', orders: 61, revenue: 49200 },\n { date: '2024-01-12', orders: 72, revenue: 58400 },\n { date: '2024-01-13', orders: 68, revenue: 54800 },\n { date: '2024-01-14', orders: 56, revenue: 44600 },\n ],\n topProviders: [\n {\n id: 'FOOD-001',\n name: 'Dosa Express',\n category: 'Food & Beverage',\n revenue: 64500,\n orders: 324,\n rating: 4.5,\n },\n {\n id: 'SERV-005',\n name: 'Spotless Cleaning Services',\n category: 'Home Services',\n revenue: 58200,\n orders: 312,\n rating: 4.8,\n },\n {\n id: 'SERV-001',\n name: 'Quick Cuts Salon',\n category: 'Personal Care & Beauty',\n revenue: 52400,\n orders: 248,\n rating: 4.6,\n },\n {\n id: 'SERV-003',\n name: 'Fix-It Mobile Repair',\n category: 'Repair & Maintenance',\n revenue: 48100,\n orders: 186,\n rating: 4.4,\n },\n {\n id: 'SERV-009',\n name: 'Dr. Health Consultation',\n category: 'Health & Wellness',\n revenue: 41800,\n orders: 203,\n rating: 4.9,\n },\n ],\n customerGrowth: [\n { month: '2023-08', newCustomers: 45, totalCustomers: 245 },\n { month: '2023-09', newCustomers: 62, totalCustomers: 307 },\n { month: '2023-10', newCustomers: 58, totalCustomers: 365 },\n { month: '2023-11', newCustomers: 71, totalCustomers: 436 },\n { month: '2023-12', newCustomers: 48, totalCustomers: 484 },\n { month: '2024-01', newCustomers: 50, totalCustomers: 534 },\n ],\n categoryDistribution: [\n { category: 'Food & Beverage', count: 3, percentage: 14.3 },\n { category: 'Personal Care & Beauty', count: 3, percentage: 14.3 },\n { category: 'Repair & Maintenance', count: 3, percentage: 14.3 },\n { category: 'Home Services', count: 3, percentage: 14.3 },\n { category: 'Clothing & Fashion', count: 3, percentage: 14.3 },\n { category: 'Health & Wellness', count: 2, percentage: 9.5 },\n { category: 'Education & Skills', count: 1, percentage: 4.8 },\n { category: 'Retail & Merchandise', count: 2, percentage: 9.5 },\n { category: 'Grocery & Essentials', count: 1, percentage: 4.8 },\n ],\n};\n\n// ============================================================================\n// MOCK WORKER TASKS\n// ============================================================================\n\nexport const mockWorkerTasks: WorkerTask[] = [\n {\n id: 'TASK-001',\n orderId: 'ORD-001',\n cartId: 'FOOD-001',\n cartName: 'Dosa Express',\n type: 'delivery',\n description: 'Deliver food order to Koramangala',\n priority: 'high',\n status: 'completed',\n assignedAt: '2024-01-15T10:45:00Z',\n dueAt: '2024-01-15T11:15:00Z',\n completedAt: '2024-01-15T10:55:00Z',\n customerName: 'Priya Customer',\n customerPhone: '+91-9876543220',\n deliveryAddress: {\n street: '123 Main Street',\n area: 'Koramangala',\n city: 'Bangalore',\n pincode: '560034',\n landmark: 'Near Metro Station',\n },\n earnings: 45,\n distance: 0.5,\n notes: 'Customer requested extra chutney',\n },\n {\n id: 'TASK-002',\n orderId: 'ORD-002',\n cartId: 'SERV-001',\n cartName: 'Quick Cuts Salon',\n type: 'service',\n description: \"Men's Haircut and Beard Trim at customer location\",\n priority: 'medium',\n status: 'in_progress',\n assignedAt: '2024-01-16T13:30:00Z',\n dueAt: '2024-01-16T15:30:00Z',\n customerName: 'Rahul Sharma',\n customerPhone: '+91-9876543221',\n deliveryAddress: {\n street: '456 Service Road',\n area: 'Indiranagar',\n city: 'Bangalore',\n pincode: '560038',\n landmark: 'Near Park',\n },\n earnings: 90,\n distance: 0.3,\n },\n {\n id: 'TASK-003',\n orderId: 'ORD-003',\n cartId: 'SERV-003',\n cartName: 'Fix-It Mobile Repair',\n type: 'service',\n description: 'iPhone 12 Pro Max screen replacement',\n priority: 'high',\n status: 'pending',\n assignedAt: '2024-01-16T16:00:00Z',\n dueAt: '2024-01-16T18:00:00Z',\n customerName: 'Vikram Patel',\n customerPhone: '+91-9876543222',\n deliveryAddress: {\n street: '789 Tech Street',\n area: 'Jayanagar',\n city: 'Bangalore',\n pincode: '560041',\n landmark: 'Near Bus Stop',\n },\n earnings: 250,\n distance: 0.7,\n notes: 'Bring iPhone 12 Pro Max display panel',\n },\n {\n id: 'TASK-004',\n orderId: 'ORD-004',\n cartId: 'RETAIL-004',\n cartName: 'Fresh Mart Grocery',\n type: 'delivery',\n description: 'Deliver grocery order to HSR Layout',\n priority: 'low',\n status: 'pending',\n assignedAt: '2024-01-16T17:00:00Z',\n dueAt: '2024-01-16T18:00:00Z',\n customerName: 'Meera Reddy',\n customerPhone: '+91-9876543223',\n deliveryAddress: {\n street: '321 Green Avenue',\n area: 'HSR Layout',\n city: 'Bangalore',\n pincode: '560102',\n },\n earnings: 35,\n distance: 1.2,\n },\n];\n\n// ============================================================================\n// MOCK WORKER SCHEDULES\n// ============================================================================\n\nexport const mockWorkerSchedules: WorkerSchedule[] = [\n {\n id: 'SCHED-001',\n date: '2024-01-15',\n startTime: '09:00',\n endTime: '17:00',\n cartId: 'FOOD-001',\n cartName: 'Dosa Express',\n status: 'completed',\n tasksCompleted: 8,\n totalEarnings: 560,\n },\n {\n id: 'SCHED-002',\n date: '2024-01-16',\n startTime: '10:00',\n endTime: '18:00',\n cartId: 'SERV-001',\n cartName: 'Quick Cuts Salon',\n status: 'in_progress',\n tasksCompleted: 3,\n totalEarnings: 340,\n },\n {\n id: 'SCHED-003',\n date: '2024-01-17',\n startTime: '08:00',\n endTime: '16:00',\n cartId: 'SERV-003',\n cartName: 'Fix-It Mobile Repair',\n status: 'scheduled',\n tasksCompleted: 0,\n totalEarnings: 0,\n },\n {\n id: 'SCHED-004',\n date: '2024-01-18',\n startTime: '09:00',\n endTime: '17:00',\n cartId: 'FOOD-001',\n cartName: 'Dosa Express',\n status: 'scheduled',\n tasksCompleted: 0,\n totalEarnings: 0,\n },\n];\n\n// ============================================================================\n// MOCK WORKER STATS\n// ============================================================================\n\nexport const mockWorkerStats: WorkerStats = {\n totalDeliveries: 156,\n totalEarnings: 12450,\n averageRating: 4.7,\n completionRate: 96.8,\n todayTasks: 5,\n todayEarnings: 425,\n};\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\n/** Find a cart by its ID */\nexport const getCartById = (cartId: string): MockCart | undefined => {\n return mockCarts.find((cart) => cart.id === cartId);\n};\n\n/** Find an order by its ID */\nexport const getOrderById = (orderId: string): MockOrder | undefined => {\n return mockOrders.find((order) => order.id === orderId);\n};\n\n/** Filter orders by status */\nexport const getOrdersByStatus = (status: OrderStatus): MockOrder[] => {\n return mockOrders.filter((order) => order.status === status);\n};\n\n/** Get recent orders, sorted by date descending */\nexport const getRecentOrders = (limit: number = 5): MockOrder[] => {\n return [...mockOrders]\n .sort((a, b) => new Date(b.orderDate).getTime() - new Date(a.orderDate).getTime())\n .slice(0, limit);\n};\n\n/** Filter carts by category */\nexport const getCartsByCategory = (category: string): MockCart[] => {\n return mockCarts.filter((cart) => cart.category === category);\n};\n\n/** Filter products by category */\nexport const getProductsByCategory = (category: string): MockProduct[] => {\n return mockProducts.filter((product) => product.category === category);\n};\n\n/** Find an investment opportunity by cart ID */\nexport const getInvestmentOpportunityByCartId = (\n cartId: string\n): InvestmentOpportunity | undefined => {\n return mockInvestmentOpportunities.find((inv) => inv.cartId === cartId);\n};\n\n/** Search carts by name, category, or menu item names */\nexport const searchCarts = (query: string): MockCart[] => {\n const lowerQuery = query.toLowerCase();\n return mockCarts.filter(\n (cart) =>\n cart.name.toLowerCase().includes(lowerQuery) ||\n cart.category.toLowerCase().includes(lowerQuery) ||\n cart.menu.some((item) => item.name.toLowerCase().includes(lowerQuery))\n );\n};\n\n/** Search products by name, description, or category */\nexport const searchProducts = (query: string): MockProduct[] => {\n const lowerQuery = query.toLowerCase();\n return mockProducts.filter(\n (product) =>\n product.name.toLowerCase().includes(lowerQuery) ||\n product.description.toLowerCase().includes(lowerQuery) ||\n product.category.toLowerCase().includes(lowerQuery)\n );\n};\n\n/** Get all unique cart categories */\nexport const getCategories = (): string[] => {\n return Array.from(new Set(mockCarts.map((cart) => cart.category)));\n};\n\n/** Get all unique menu item sub-categories */\nexport const getSubCategories = (): string[] => {\n return Array.from(new Set(mockCarts.flatMap((cart) => cart.menu.map((item) => item.category))));\n};\n\n/** Get carts that are currently open */\nexport const getOpenCarts = (): MockCart[] => {\n return mockCarts.filter((cart) => cart.isOpen);\n};\n\n/** Get verified carts only */\nexport const getVerifiedCarts = (): MockCart[] => {\n return mockCarts.filter((cart) => cart.isVerified);\n};\n\n/** Get carts sorted by rating (descending) */\nexport const getTopRatedCarts = (limit: number = 5): MockCart[] => {\n return [...mockCarts].sort((a, b) => b.rating - a.rating).slice(0, limit);\n};\n\n/** Get carts sorted by distance (ascending) */\nexport const getNearbyCarts = (limit: number = 5): MockCart[] => {\n return [...mockCarts].sort((a, b) => a.distance - b.distance).slice(0, limit);\n};\n\n/** Aggregated mock data service */\nexport const mockDataService = {\n searchCarts,\n searchProducts,\n getCartsByCategory,\n getProductsByCategory,\n getInvestmentOpportunityByCartId,\n getCategories,\n getSubCategories,\n getOpenCarts,\n getVerifiedCarts,\n getTopRatedCarts,\n getNearbyCarts,\n getCartById,\n getOrderById,\n getOrdersByStatus,\n getRecentOrders,\n};\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ //#region src/adaptercloud/mocks/users.ts
2
+ var e = {
3
+ id: "user-owner-001",
4
+ email: "owner@burdenoff.com",
5
+ phone: "+91-9876543210",
6
+ firstName: "Ravi",
7
+ lastName: "Kumar",
8
+ role: "cart_owner",
9
+ roles: ["cart_owner"],
10
+ activeRole: "cart_owner",
11
+ isEmailVerified: !0,
12
+ isPhoneVerified: !0,
13
+ profilePicture: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200",
14
+ createdAt: "2023-03-01T08:00:00Z",
15
+ updatedAt: "2024-01-15T09:00:00Z"
16
+ }, t = {
17
+ id: "user-worker-001",
18
+ email: "worker@burdenoff.com",
19
+ phone: "+91-9876543211",
20
+ firstName: "Suresh",
21
+ lastName: "Worker",
22
+ role: "worker",
23
+ roles: ["worker"],
24
+ activeRole: "worker",
25
+ isEmailVerified: !0,
26
+ isPhoneVerified: !0,
27
+ profilePicture: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200",
28
+ createdAt: "2023-08-20T12:00:00Z",
29
+ updatedAt: "2024-01-16T08:00:00Z"
30
+ };
31
+ //#endregion
32
+ export { e as mockCartOwner, t as mockWorker };
33
+
34
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","names":[],"sources":["../../../src/adaptercloud/mocks/users.ts"],"sourcesContent":["/**\n * AdapterCloud Mock Users\n *\n * Mock user profiles for each role in the platform.\n * Used for development and testing.\n *\n * @module adaptercloud/mocks/users\n */\n\nimport type { MockUserProfile, UserRole } from '../types';\n\n// ============================================================================\n// MOCK USER PROFILES\n// ============================================================================\n\nexport const mockCustomer: MockUserProfile = {\n id: 'user-customer-001',\n email: 'customer@burdenoff.com',\n phone: '+91-9876543220',\n firstName: 'Priya',\n lastName: 'Customer',\n role: 'customer',\n roles: ['customer'],\n activeRole: 'customer',\n isEmailVerified: true,\n isPhoneVerified: true,\n profilePicture: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=200',\n createdAt: '2023-06-15T10:00:00Z',\n updatedAt: '2024-01-10T14:30:00Z',\n};\n\nexport const mockCartOwner: MockUserProfile = {\n id: 'user-owner-001',\n email: 'owner@burdenoff.com',\n phone: '+91-9876543210',\n firstName: 'Ravi',\n lastName: 'Kumar',\n role: 'cart_owner',\n roles: ['cart_owner'],\n activeRole: 'cart_owner',\n isEmailVerified: true,\n isPhoneVerified: true,\n profilePicture: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200',\n createdAt: '2023-03-01T08:00:00Z',\n updatedAt: '2024-01-15T09:00:00Z',\n};\n\nexport const mockWorker: MockUserProfile = {\n id: 'user-worker-001',\n email: 'worker@burdenoff.com',\n phone: '+91-9876543211',\n firstName: 'Suresh',\n lastName: 'Worker',\n role: 'worker',\n roles: ['worker'],\n activeRole: 'worker',\n isEmailVerified: true,\n isPhoneVerified: true,\n profilePicture: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200',\n createdAt: '2023-08-20T12:00:00Z',\n updatedAt: '2024-01-16T08:00:00Z',\n};\n\nexport const mockInvestor: MockUserProfile = {\n id: 'user-investor-001',\n email: 'investor@burdenoff.com',\n phone: '+91-9876543230',\n firstName: 'Rajesh',\n lastName: 'Mehta',\n role: 'investor',\n roles: ['investor'],\n activeRole: 'investor',\n isEmailVerified: true,\n isPhoneVerified: true,\n profilePicture: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=200',\n createdAt: '2023-04-10T09:00:00Z',\n updatedAt: '2024-01-12T16:00:00Z',\n};\n\nexport const mockAdmin: MockUserProfile = {\n id: 'user-admin-001',\n email: 'admin@burdenoff.com',\n phone: '+91-9876543200',\n firstName: 'Admin',\n lastName: 'User',\n role: 'admin',\n roles: ['admin', 'customer'],\n activeRole: 'admin',\n isEmailVerified: true,\n isPhoneVerified: true,\n profilePicture: 'https://images.unsplash.com/photo-1560250097-0b93528c311a?w=200',\n createdAt: '2023-01-01T00:00:00Z',\n updatedAt: '2024-01-16T12:00:00Z',\n};\n\n// ============================================================================\n// ALL MOCK USERS (indexed)\n// ============================================================================\n\n/** All mock users indexed by role for easy lookup */\nexport const mockUsers: Record<UserRole, MockUserProfile> = {\n customer: mockCustomer,\n cart_owner: mockCartOwner,\n worker: mockWorker,\n investor: mockInvestor,\n admin: mockAdmin,\n};\n\n/** All mock users as an array */\nexport const mockUsersList: MockUserProfile[] = [\n mockCustomer,\n mockCartOwner,\n mockWorker,\n mockInvestor,\n mockAdmin,\n];\n\n/** Get a mock user by role */\nexport const getMockUserByRole = (role: UserRole): MockUserProfile => {\n return mockUsers[role];\n};\n\n/** Get a mock user by email */\nexport const getMockUserByEmail = (email: string): MockUserProfile | undefined => {\n return mockUsersList.find((user) => user.email === email);\n};\n\n/** Get a mock user by ID */\nexport const getMockUserById = (id: string): MockUserProfile | undefined => {\n return mockUsersList.find((user) => user.id === id);\n};\n"],"mappings":";AA+BA,IAAa,IAAiC;CAC5C,IAAI;CACJ,OAAO;CACP,OAAO;CACP,WAAW;CACX,UAAU;CACV,MAAM;CACN,OAAO,CAAC,aAAa;CACrB,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,gBAAgB;CAChB,WAAW;CACX,WAAW;CACZ,EAEY,IAA8B;CACzC,IAAI;CACJ,OAAO;CACP,OAAO;CACP,WAAW;CACX,UAAU;CACV,MAAM;CACN,OAAO,CAAC,SAAS;CACjB,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,gBAAgB;CAChB,WAAW;CACX,WAAW;CACZ"}