import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hive_ce_flutter/hive_flutter.dart'; import 'app.dart'; import 'core/constants/storage_constants.dart'; import 'features/products/data/models/product_model.dart'; import 'features/categories/data/models/category_model.dart'; import 'features/home/data/models/cart_item_model.dart'; import 'features/home/data/models/transaction_model.dart'; import 'features/settings/data/models/app_settings_model.dart'; /// Main entry point of the application void main() async { // Ensure Flutter binding is initialized WidgetsFlutterBinding.ensureInitialized(); // Initialize Hive await Hive.initFlutter(); // Register Hive adapters Hive.registerAdapter(ProductModelAdapter()); Hive.registerAdapter(CategoryModelAdapter()); Hive.registerAdapter(CartItemModelAdapter()); Hive.registerAdapter(TransactionModelAdapter()); Hive.registerAdapter(AppSettingsModelAdapter()); // Open Hive boxes await Hive.openBox(StorageConstants.productsBox); await Hive.openBox(StorageConstants.categoriesBox); await Hive.openBox(StorageConstants.cartBox); await Hive.openBox(StorageConstants.transactionsBox); await Hive.openBox(StorageConstants.settingsBox); // Run the app with Riverpod (no GetIt needed - using Riverpod for DI) runApp( const ProviderScope( child: RetailApp(), ), ); }