UPDATE
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from soil.serializers import SoilAnomalyDetectionSerializer, SoilComparisonChartSerializer, SoilKpiSerializer, SoilMoistureHeatmapSerializer, SoilRadarChartSerializer
|
||||
|
||||
|
||||
class Sensor7In1MetaSerializer(serializers.Serializer):
|
||||
name = serializers.CharField(required=False, allow_blank=True)
|
||||
physicalDeviceUuid = serializers.CharField(required=False, allow_null=True)
|
||||
sensorCatalogCode = serializers.CharField(required=False, allow_blank=True)
|
||||
updatedAt = serializers.CharField(required=False, allow_null=True)
|
||||
|
||||
|
||||
class Sensor7In1ValueSerializer(serializers.Serializer):
|
||||
id = serializers.CharField(required=False, allow_blank=True)
|
||||
title = serializers.CharField(required=False, allow_blank=True)
|
||||
subtitle = serializers.CharField(required=False, allow_blank=True)
|
||||
trendNumber = serializers.FloatField(required=False)
|
||||
trend = serializers.CharField(required=False, allow_blank=True)
|
||||
unit = serializers.CharField(required=False, allow_blank=True)
|
||||
|
||||
|
||||
class Sensor7In1ValuesListSerializer(serializers.Serializer):
|
||||
sensor = Sensor7In1MetaSerializer(required=False)
|
||||
sensors = Sensor7In1ValueSerializer(many=True, required=False)
|
||||
|
||||
|
||||
class SensorComparisonChartQuerySerializer(serializers.Serializer):
|
||||
farm_uuid = serializers.UUIDField()
|
||||
range = serializers.ChoiceField(choices=["7d", "30d"], required=False, default="7d")
|
||||
|
||||
|
||||
class SensorValuesListQuerySerializer(serializers.Serializer):
|
||||
farm_uuid = serializers.UUIDField()
|
||||
range = serializers.ChoiceField(choices=["1h", "24h", "7d"], required=False, default="7d")
|
||||
|
||||
|
||||
class SensorRadarChartQuerySerializer(serializers.Serializer):
|
||||
farm_uuid = serializers.UUIDField()
|
||||
range = serializers.ChoiceField(choices=["today", "7d", "30d"], required=False, default="7d")
|
||||
|
||||
|
||||
class SensorComparisonChartSeriesSerializer(serializers.Serializer):
|
||||
name = serializers.CharField()
|
||||
data = serializers.ListField(child=serializers.FloatField())
|
||||
|
||||
|
||||
class SensorComparisonChartResponseSerializer(serializers.Serializer):
|
||||
series = SensorComparisonChartSeriesSerializer(many=True)
|
||||
categories = serializers.ListField(child=serializers.CharField())
|
||||
currentValue = serializers.FloatField()
|
||||
vsLastWeek = serializers.CharField()
|
||||
|
||||
|
||||
class SensorValuesListItemSerializer(serializers.Serializer):
|
||||
title = serializers.CharField()
|
||||
subtitle = serializers.CharField()
|
||||
trendNumber = serializers.FloatField()
|
||||
trend = serializers.ChoiceField(choices=["positive", "negative"])
|
||||
unit = serializers.CharField()
|
||||
|
||||
|
||||
class SensorValuesListResponseSerializer(serializers.Serializer):
|
||||
sensors = SensorValuesListItemSerializer(many=True)
|
||||
|
||||
|
||||
class SensorRadarChartResponseSerializer(serializers.Serializer):
|
||||
labels = serializers.ListField(child=serializers.CharField())
|
||||
series = SensorComparisonChartSeriesSerializer(many=True)
|
||||
|
||||
|
||||
class Sensor7In1SummarySerializer(serializers.Serializer):
|
||||
sensor = Sensor7In1MetaSerializer(required=False)
|
||||
sensorValuesList = Sensor7In1ValuesListSerializer(required=False)
|
||||
avgSoilMoisture = SoilKpiSerializer(required=False)
|
||||
sensorRadarChart = SoilRadarChartSerializer(required=False)
|
||||
sensorComparisonChart = SoilComparisonChartSerializer(required=False)
|
||||
anomalyDetectionCard = SoilAnomalyDetectionSerializer(required=False)
|
||||
soilMoistureHeatmap = SoilMoistureHeatmapSerializer(required=False)
|
||||
|
||||
Reference in New Issue
Block a user