import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../../core/network/dio_client.dart'; import '../../data/datasources/alerts_datasource.dart'; import '../../data/repositories/alerts_repository_impl.dart'; import '../../domain/entities/alert_event.dart'; import '../../domain/repositories/alerts_repository.dart'; // --------------------------------------------------------------------------- // Dependency providers // --------------------------------------------------------------------------- final alertsDatasourceProvider = Provider((ref) { final dio = ref.watch(dioClientProvider); return AlertsDatasource(dio); }); final alertsRepositoryProvider = Provider((ref) { final datasource = ref.watch(alertsDatasourceProvider); return AlertsRepositoryImpl(datasource); }); // --------------------------------------------------------------------------- // Data providers // --------------------------------------------------------------------------- /// Provides the full list of alert events. final alertEventsListProvider = FutureProvider>((ref) async { final repo = ref.watch(alertsRepositoryProvider); return repo.getAll(); }); /// Provides alert events filtered by severity. final alertEventsBySeverityProvider = FutureProvider.family, String>((ref, severity) async { final repo = ref.watch(alertsRepositoryProvider); return repo.getAll(severity: severity); });