63 lines
2.9 KiB
Python
63 lines
2.9 KiB
Python
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)
|