package core import ( "context" "gitea.maximumdirect.net/ejr/weatherfeeder/model" ) // Repository defines outbound data access used by weatherapi use cases. type Repository interface { LatestObservation(ctx context.Context) (*model.WeatherObservation, error) LatestHourlyForecast(ctx context.Context) (*model.WeatherForecastRun, error) LatestActiveAlerts(ctx context.Context) (*model.WeatherAlertRun, error) } // Service provides weather read use-cases. type Service struct { repo Repository } func NewService(repo Repository) *Service { return &Service{repo: repo} } func (s *Service) LatestObservation(ctx context.Context) (*model.WeatherObservation, error) { return s.repo.LatestObservation(ctx) } func (s *Service) LatestHourlyForecast(ctx context.Context) (*model.WeatherForecastRun, error) { return s.repo.LatestHourlyForecast(ctx) } func (s *Service) LatestActiveAlerts(ctx context.Context) (*model.WeatherAlertRun, error) { return s.repo.LatestActiveAlerts(ctx) }