import 'package:flutter/foundation.dart'; import 'package:mileograph_flutter/objects/objects.dart'; import 'package:mileograph_flutter/services/apiService.dart'; // assumes you've moved HomepageStats + submodels to a separate file class DataService extends ChangeNotifier { final ApiService api; DataService({required this.api}); HomepageStats? _homepageStats; HomepageStats? get homepageStats => _homepageStats; bool _isHomepageLoading = false; bool get isHomepageLoading => _isHomepageLoading; Future fetchHomepageStats() async { _isHomepageLoading = true; notifyListeners(); try { final json = await api.get('/stats/homepage'); _homepageStats = HomepageStats.fromJson(json); } catch (e) { debugPrint('Failed to fetch homepage stats: $e'); _homepageStats = null; } finally { _isHomepageLoading = false; notifyListeners(); } } void clear() { _homepageStats = null; notifyListeners(); } double getMileageForCurrentYear() { final currentYear = DateTime.now().year; return getMileageForYear(currentYear) ?? 0; } double? getMileageForYear(int year) { return _homepageStats?.yearlyMileage .firstWhere( (entry) => entry.year == year, orElse: () => YearlyMileage(year: null, mileage: 0), ) .mileage ?? 0; } }