import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:tatlock_ui/features/front_hall/data/datasources/environment_datasource.dart'; import 'package:tatlock_ui/features/front_hall/data/models/environment_model.dart'; part 'environment_provider.g.dart'; /// Fetches environment data (weather, forecast, sun times) from Core API. /// /// Auto-invalidates every 5 minutes to keep data fresh. /// Weather data in Qdrant has 1-hour TTL, so 5-minute refresh is reasonable. @riverpod Future environment(Ref ref) async { final datasource = ref.watch(environmentDatasourceProvider); return datasource.getEnvironment(); } /// Provides whether air quality data is available. /// /// Used for conditional rendering of AirQualityWidget. @riverpod bool hasAirQuality(Ref ref) { final asyncValue = ref.watch(environmentProvider); return asyncValue.maybeWhen( data: (data) => data.airQuality != null, orElse: () => false, ); }