UPDATE
This commit is contained in:
@@ -470,7 +470,12 @@ def _run_projection_engine(context: GrowthSimulationContext) -> dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
def _run_simulation(context: GrowthSimulationContext) -> tuple[dict[str, Any], int | None, str | None]:
|
||||
def _run_simulation(
|
||||
context: GrowthSimulationContext,
|
||||
*,
|
||||
irrigation_recommendation: dict[str, Any] | None = None,
|
||||
fertilization_recommendation: dict[str, Any] | None = None,
|
||||
) -> tuple[dict[str, Any], int | None, str | None]:
|
||||
try:
|
||||
response = CropSimulationService().run_single_simulation(
|
||||
farm_uuid=context.farm_uuid,
|
||||
@@ -480,6 +485,8 @@ def _run_simulation(context: GrowthSimulationContext) -> tuple[dict[str, Any], i
|
||||
crop_parameters=context.crop_parameters,
|
||||
agromanagement=context.agromanagement,
|
||||
site_parameters=context.site_parameters,
|
||||
irrigation_recommendation=irrigation_recommendation,
|
||||
fertilization_recommendation=fertilization_recommendation,
|
||||
name=f"growth:{context.plant_name}",
|
||||
)
|
||||
return response["result"], response.get("scenario_id"), None
|
||||
@@ -619,7 +626,11 @@ def run_growth_simulation(payload: dict[str, Any], progress_callback=None) -> di
|
||||
meta={"current": 1, "total": 3, "message": "simulation input resolved"},
|
||||
)
|
||||
|
||||
simulation_result, scenario_id, simulation_error = _run_simulation(context)
|
||||
simulation_result, scenario_id, simulation_error = _run_simulation(
|
||||
context,
|
||||
irrigation_recommendation=payload.get("irrigation_recommendation"),
|
||||
fertilization_recommendation=payload.get("fertilization_recommendation"),
|
||||
)
|
||||
if progress_callback is not None:
|
||||
progress_callback(
|
||||
state="PROGRESS",
|
||||
@@ -751,7 +762,14 @@ def _build_current_farm_chart_payload(
|
||||
class CurrentFarmChartSimulator:
|
||||
"""سازنده chart وضعیت فعلی مزرعه برای خروجی مستقل از dashboard."""
|
||||
|
||||
def simulate(self, *, farm_uuid: str, plant_name: str | None = None) -> dict[str, Any]:
|
||||
def simulate(
|
||||
self,
|
||||
*,
|
||||
farm_uuid: str,
|
||||
plant_name: str | None = None,
|
||||
irrigation_recommendation: dict[str, Any] | None = None,
|
||||
fertilization_recommendation: dict[str, Any] | None = None,
|
||||
) -> dict[str, Any]:
|
||||
if not farm_uuid:
|
||||
raise GrowthSimulationError("ارسال farm_uuid الزامی است.")
|
||||
|
||||
@@ -777,7 +795,11 @@ class CurrentFarmChartSimulator:
|
||||
"page_size": DEFAULT_PAGE_SIZE,
|
||||
}
|
||||
)
|
||||
simulation_result, scenario_id, simulation_warning = _run_simulation(context)
|
||||
simulation_result, scenario_id, simulation_warning = _run_simulation(
|
||||
context,
|
||||
irrigation_recommendation=irrigation_recommendation,
|
||||
fertilization_recommendation=fertilization_recommendation,
|
||||
)
|
||||
return _build_current_farm_chart_payload(
|
||||
context,
|
||||
simulation_result,
|
||||
|
||||
Reference in New Issue
Block a user