67 lines
2.4 KiB
Dart
67 lines
2.4 KiB
Dart
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<DashboardMetrics>((ref) async {
|
|
return ref.read(analyticsServiceProvider).getDashboard();
|
|
});
|
|
|
|
final vehiclesProvider = FutureProvider.family<VehicleListResponse, Map<String, dynamic>>(
|
|
(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<Vehicle, String>((ref, id) {
|
|
return ref.read(vehicleServiceProvider).getVehicle(id);
|
|
});
|
|
|
|
final reservationsProvider =
|
|
FutureProvider.family<ReservationListResponse, Map<String, dynamic>>(
|
|
(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<Reservation, String>((ref, id) {
|
|
return ref.read(reservationServiceProvider).getReservation(id);
|
|
});
|
|
|
|
final customersProvider =
|
|
FutureProvider.family<CustomerListResponse, Map<String, dynamic>>(
|
|
(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<Customer, String>((ref, id) {
|
|
return ref.read(customerServiceProvider).getCustomer(id);
|
|
});
|