from dashboard_data.card_utils import safe_number def build_water_need_prediction(sensor_id: str, context: dict | None = None, ai_bundle: dict | None = None) -> dict: forecasts = (context or {}).get("forecasts", []) daily_needs = [] for forecast in forecasts[:7]: et0 = safe_number(forecast.et0, 4) rain = safe_number(forecast.precipitation, 0) need = max(0, round((et0 * 100) - (rain * 20))) daily_needs.append(need) return { "totalNext7Days": sum(daily_needs), "unit": "m³", "categories": [f"روز {index}" for index in range(1, len(daily_needs) + 1)], "series": [{"name": "نیاز آبی", "data": daily_needs}], }