import 'package:wetter/models/hourly_weather_model.dart'; import 'dart:math'; class DailyWeatherModel { late List hourlyForecasts; DateTime dateOfDay() { return hourlyForecasts[0].timestamp.toLocal(); } DailyWeatherModel.fromJson(Map json) { List dataPoints = json['weather']; hourlyForecasts = []; for (var dataPoint in dataPoints) { hourlyForecasts.add(HourlyWeatherModel.fromJson(dataPoint)); } } String dailyAverageTemp() { double tempSum = 0; for (var forecast in hourlyForecasts) { tempSum = tempSum + forecast.temperature; } return (tempSum / hourlyForecasts.length).round().toString(); } List tempList() { List temps = []; for (HourlyWeatherModel hf in hourlyForecasts) { temps.add(hf.temperature.round()); } return temps; } String dailyMaxTemp() { return tempList().reduce(max).toString(); } String dailyMinTemp() { return tempList().reduce(min).toString(); } String? cumulatedSunshineMinutes() { bool dataCorrect = true; int csm = 0; for (var hf in hourlyForecasts) { if (hf.sunshine == null) { return null; } else { csm = csm + hf.sunshine!; } } if (dataCorrect) { return csm.toString(); } } }