UPDATE
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .data_driven_subdivision import SUPPORTED_CLUSTER_FEATURES
|
||||
from .models import (
|
||||
AnalysisGridObservation,
|
||||
BlockSubdivision,
|
||||
@@ -108,7 +107,7 @@ class SoilDataTaskResponseSerializer(serializers.Serializer):
|
||||
"""سریالایزر خروجی وقتی تسک در صف قرار گرفته (۲۰۲)."""
|
||||
|
||||
source = serializers.CharField(default="task")
|
||||
task_id = serializers.CharField()
|
||||
task_id = serializers.UUIDField()
|
||||
lon = serializers.FloatField(source="longitude")
|
||||
lat = serializers.FloatField(source="latitude")
|
||||
status_url = serializers.CharField(required=False)
|
||||
@@ -135,42 +134,9 @@ class NdviHealthResponseSerializer(serializers.Serializer):
|
||||
healthData = NdviHealthDataItemSerializer(many=True)
|
||||
|
||||
|
||||
class RemoteSensingTriggerSerializer(serializers.Serializer):
|
||||
lon = serializers.DecimalField(max_digits=9, decimal_places=6, required=True)
|
||||
lat = serializers.DecimalField(max_digits=9, decimal_places=6, required=True)
|
||||
block_code = serializers.CharField(required=False, allow_blank=True, default="", max_length=64)
|
||||
start_date = serializers.DateField(required=True)
|
||||
end_date = serializers.DateField(required=True)
|
||||
class RemoteSensingFarmRequestSerializer(serializers.Serializer):
|
||||
farm_uuid = serializers.UUIDField(required=True, help_text="شناسه یکتای مزرعه")
|
||||
force_refresh = serializers.BooleanField(required=False, default=False)
|
||||
cluster_count = serializers.IntegerField(required=False, min_value=1, allow_null=True, default=None)
|
||||
selected_features = serializers.ListField(
|
||||
child=serializers.CharField(max_length=64),
|
||||
required=False,
|
||||
allow_empty=False,
|
||||
)
|
||||
|
||||
def validate(self, attrs):
|
||||
if attrs["start_date"] > attrs["end_date"]:
|
||||
raise serializers.ValidationError("start_date نمیتواند بعد از end_date باشد.")
|
||||
selected_features = attrs.get("selected_features") or []
|
||||
invalid_features = sorted(
|
||||
feature_name
|
||||
for feature_name in selected_features
|
||||
if feature_name not in SUPPORTED_CLUSTER_FEATURES
|
||||
)
|
||||
if invalid_features:
|
||||
raise serializers.ValidationError(
|
||||
{
|
||||
"selected_features": [
|
||||
"ویژگیهای نامعتبر برای خوشهبندی: "
|
||||
+ ", ".join(invalid_features)
|
||||
]
|
||||
}
|
||||
)
|
||||
return attrs
|
||||
|
||||
|
||||
class RemoteSensingResultQuerySerializer(RemoteSensingTriggerSerializer):
|
||||
page = serializers.IntegerField(required=False, min_value=1, default=1)
|
||||
page_size = serializers.IntegerField(required=False, min_value=1, max_value=200, default=100)
|
||||
|
||||
@@ -323,7 +289,15 @@ class RemoteSensingRunStatusResponseSerializer(serializers.Serializer):
|
||||
status = serializers.CharField()
|
||||
source = serializers.CharField()
|
||||
run = RemoteSensingRunSerializer()
|
||||
task_id = serializers.CharField(allow_blank=True, allow_null=True, required=False)
|
||||
task_id = serializers.UUIDField(allow_null=True, required=False)
|
||||
location = SoilLocationResponseSerializer(required=False)
|
||||
block_code = serializers.CharField(allow_blank=True, required=False)
|
||||
chunk_size_sqm = serializers.IntegerField(allow_null=True, required=False)
|
||||
temporal_extent = serializers.JSONField(required=False)
|
||||
summary = RemoteSensingSummarySerializer(required=False)
|
||||
cells = RemoteSensingCellObservationSerializer(many=True, required=False)
|
||||
subdivision_result = RemoteSensingSubdivisionResultSerializer(allow_null=True, required=False)
|
||||
pagination = serializers.JSONField(required=False)
|
||||
|
||||
|
||||
class RemoteSensingRunResultResponseSerializer(serializers.Serializer):
|
||||
|
||||
Reference in New Issue
Block a user