import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/api/api_client.dart'; import '../../../core/api/api_endpoints.dart'; import '../../../core/api/api_response.dart'; import '../domain/establishment.dart'; /// Dépôt de données pour les établissements et machines. class EstablishmentRepository { EstablishmentRepository(this._apiClient); final ApiClient _apiClient; Future> fetchEstablishments() async { final response = await _apiClient.get(ApiEndpoints.establishments); final data = ApiResponse.list(response.data, 'establishments'); return data .map((json) => Establishment.fromJson(json as Map)) .toList(); } Future fetchEstablishment(String uuid) async { final response = await _apiClient.get(ApiEndpoints.establishment(uuid)); final json = ApiResponse.object(response.data, 'establishment'); return Establishment.fromJson(json); } } final establishmentRepositoryProvider = Provider((ref) { return EstablishmentRepository(ref.watch(apiClientProvider)); }); final establishmentsProvider = FutureProvider>((ref) async { return ref.watch(establishmentRepositoryProvider).fetchEstablishments(); }); final establishmentDetailProvider = FutureProvider.family((ref, uuid) async { return ref.watch(establishmentRepositoryProvider).fetchEstablishment(uuid); });