import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/models/analytics.dart'; import '../../../core/models/vehicle.dart'; import '../../../core/models/reservation.dart'; import '../../../core/models/customer.dart'; import '../../../core/services/analytics_service.dart'; import '../../../core/services/vehicle_service.dart'; import '../../../core/services/reservation_service.dart'; import '../../../core/services/customer_service.dart'; final analyticsServiceProvider = Provider((_) => AnalyticsService()); final vehicleServiceProvider = Provider((_) => VehicleService()); final reservationServiceProvider = Provider((_) => ReservationService()); final customerServiceProvider = Provider((_) => CustomerService()); final dashboardMetricsProvider = FutureProvider((ref) async { return ref.read(analyticsServiceProvider).getDashboard(); }); final vehiclesProvider = FutureProvider.family>( (ref, params) async { return ref.read(vehicleServiceProvider).getVehicles( page: params['page'] as int? ?? 1, pageSize: params['pageSize'] as int? ?? 20, status: params['status'] as String?, search: params['search'] as String?, ); }, ); final vehicleDetailProvider = FutureProvider.family((ref, id) { return ref.read(vehicleServiceProvider).getVehicle(id); }); final reservationsProvider = FutureProvider.family>( (ref, params) async { return ref.read(reservationServiceProvider).getReservations( page: params['page'] as int? ?? 1, pageSize: params['pageSize'] as int? ?? 20, status: params['status'] as String?, search: params['search'] as String?, ); }, ); final reservationDetailProvider = FutureProvider.family((ref, id) { return ref.read(reservationServiceProvider).getReservation(id); }); final customersProvider = FutureProvider.family>( (ref, params) async { return ref.read(customerServiceProvider).getCustomers( page: params['page'] as int? ?? 1, pageSize: params['pageSize'] as int? ?? 20, search: params['search'] as String?, ); }, ); final customerDetailProvider = FutureProvider.family((ref, id) { return ref.read(customerServiceProvider).getCustomer(id); });