import 'package:lunchpick/domain/entities/weather_info.dart';

abstract class WeatherRepository {
  /// 현재 위치의 날씨 정보를 가져옵니다
  Future<WeatherInfo> getCurrentWeather({
    required double latitude,
    required double longitude,
  });

  /// 캐시된 날씨 정보를 가져옵니다
  Future<WeatherInfo?> getCachedWeather();

  /// 날씨 정보를 캐시에 저장합니다
  Future<void> cacheWeatherInfo(WeatherInfo weatherInfo);

  /// 날씨 캐시를 삭제합니다
  Future<void> clearWeatherCache();

  /// 날씨 정보 업데이트가 필요한지 확인합니다
  Future<bool> isWeatherUpdateNeeded();
}
