Files

35 lines
1.2 KiB
Python
Raw Permalink Normal View History

2026-05-11 03:27:21 +03:30
from datetime import date
def load_farm_context(sensor_id: str) -> dict | None:
from irrigation.models import IrrigationMethod
from location_data.satellite_snapshot import build_location_block_satellite_snapshots
from farm_data.models import SensorData
from farm_data.services import get_farm_plant_snapshots
from weather.models import WeatherForecast
try:
sensor = SensorData.objects.select_related("center_location").prefetch_related("plant_assignments__plant").get(
farm_uuid=sensor_id
)
except SensorData.DoesNotExist:
return None
location = sensor.center_location
satellite_snapshots = build_location_block_satellite_snapshots(location)
forecasts = list(
WeatherForecast.objects.filter(location=location, forecast_date__gte=date.today()).order_by("forecast_date")[:7]
)
plants = get_farm_plant_snapshots(sensor)
irrigation_methods = list(IrrigationMethod.objects.all()[:5])
return {
"sensor": sensor,
"location": location,
"satellite_snapshots": satellite_snapshots,
"forecasts": forecasts,
"history": [],
"plants": plants,
"irrigation_methods": irrigation_methods,
}