Files
Backend/irrigation_recommendation/serializers.py
T

63 lines
2.9 KiB
Python
Raw Normal View History

2026-03-26 15:39:31 +03:30
from rest_framework import serializers
class IrrigationFarmDataSerializer(serializers.Serializer):
soilType = serializers.CharField(required=False, allow_blank=True)
waterQuality = serializers.CharField(required=False, allow_blank=True)
climateZone = serializers.CharField(required=False, allow_blank=True)
class IrrigationRecommendRequestSerializer(serializers.Serializer):
crop_id = serializers.CharField(required=False, allow_blank=True)
farm_data = IrrigationFarmDataSerializer(required=False)
soilType = serializers.CharField(required=False, allow_blank=True)
waterQuality = serializers.CharField(required=False, allow_blank=True)
climateZone = serializers.CharField(required=False, allow_blank=True)
class IrrigationPlanSerializer(serializers.Serializer):
frequencyPerWeek = serializers.CharField(required=False, allow_blank=True)
durationMinutes = serializers.CharField(required=False, allow_blank=True)
bestTimeOfDay = serializers.CharField(required=False, allow_blank=True)
moistureLevel = serializers.CharField(required=False, allow_blank=True)
warning = serializers.CharField(required=False, allow_blank=True)
class IrrigationWaterBalanceDaySerializer(serializers.Serializer):
forecast_date = serializers.CharField(required=False, allow_blank=True)
et0_mm = serializers.FloatField(required=False)
etc_mm = serializers.FloatField(required=False)
effective_rainfall_mm = serializers.FloatField(required=False)
gross_irrigation_mm = serializers.FloatField(required=False)
irrigation_timing = serializers.CharField(required=False, allow_blank=True)
class IrrigationCropProfileSerializer(serializers.Serializer):
kc_initial = serializers.FloatField(required=False)
kc_mid = serializers.FloatField(required=False)
kc_end = serializers.FloatField(required=False)
class IrrigationWaterBalanceSerializer(serializers.Serializer):
daily = IrrigationWaterBalanceDaySerializer(many=True, required=False)
crop_profile = IrrigationCropProfileSerializer(required=False)
active_kc = serializers.FloatField(required=False)
class IrrigationRecommendResponseDataSerializer(serializers.Serializer):
plan = IrrigationPlanSerializer(required=False)
raw_response = serializers.CharField(required=False, allow_blank=True)
water_balance = IrrigationWaterBalanceSerializer(required=False)
status = serializers.CharField(required=False, allow_blank=True)
class IrrigationTaskSubmitDataSerializer(serializers.Serializer):
task_id = serializers.CharField(required=False, allow_blank=True)
status = serializers.CharField(required=False, allow_blank=True)
class IrrigationTaskStatusDataSerializer(serializers.Serializer):
task_id = serializers.CharField(required=False, allow_blank=True)
status = serializers.CharField(required=False, allow_blank=True)
result = IrrigationRecommendResponseDataSerializer(required=False)