import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../core/network/dio_client.dart'; import '../../data/datasources/dashboard_datasource.dart'; import '../../data/repositories/dashboard_repository_impl.dart'; import '../../domain/entities/dashboard_summary.dart'; import '../../domain/entities/recent_operation.dart'; import '../../domain/entities/server_status.dart'; import '../../domain/repositories/dashboard_repository.dart'; // --------------------------------------------------------------------------- // Dependency providers // --------------------------------------------------------------------------- final dashboardDatasourceProvider = Provider((ref) { final dio = ref.watch(dioClientProvider); return DashboardDatasource(dio); }); final dashboardRepositoryProvider = Provider((ref) { final datasource = ref.watch(dashboardDatasourceProvider); return DashboardRepositoryImpl(datasource); }); // --------------------------------------------------------------------------- // Data providers // --------------------------------------------------------------------------- /// Provides the aggregated dashboard summary. final dashboardSummaryProvider = FutureProvider((ref) async { final repository = ref.watch(dashboardRepositoryProvider); return repository.getSummary(); }); /// Provides the list of recent operations. final recentOperationsProvider = FutureProvider>((ref) async { final repository = ref.watch(dashboardRepositoryProvider); return repository.getRecentOperations(); }); /// Provides the status of all servers. final serverStatusesProvider = FutureProvider>((ref) async { final repository = ref.watch(dashboardRepositoryProvider); return repository.getServerStatuses(); });