import 'package:dio/dio.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:tatlock_ui/core/api/api_client.dart'; import 'package:tatlock_ui/features/front_hall/data/models/environment_model.dart'; part 'environment_datasource.g.dart'; /// Data source for environment data operations. /// /// Fetches weather, forecast, sun times, and air quality from Core API. class EnvironmentDatasource { EnvironmentDatasource(this._dio); final Dio _dio; static const _basePath = '/tools/environment'; /// Gets current environment data. /// /// Returns weather, forecast, sun times, and optionally air quality. Future getEnvironment() async { final response = await _dio.get>(_basePath); final data = response.data; if (data == null) { throw Exception('Failed to fetch environment data'); } return EnvironmentData.fromJson(data); } } /// Provides the environment datasource. @riverpod EnvironmentDatasource environmentDatasource(Ref ref) { final dio = ref.watch(coreApiClientProvider); return EnvironmentDatasource(dio); }