Files
Backend/soil/serializers.py
T

67 lines
3.0 KiB
Python
Raw Normal View History

2026-04-11 03:54:15 +03:30
from rest_framework import serializers
class SoilKpiSerializer(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)
stats = serializers.CharField(required=False, allow_blank=True)
avatarColor = serializers.CharField(required=False, allow_blank=True)
avatarIcon = serializers.CharField(required=False, allow_blank=True)
chipText = serializers.CharField(required=False, allow_blank=True)
chipColor = serializers.CharField(required=False, allow_blank=True)
class SoilRadarSeriesSerializer(serializers.Serializer):
name = serializers.CharField(required=False, allow_blank=True)
data = serializers.ListField(child=serializers.FloatField(), required=False)
class SoilRadarChartSerializer(serializers.Serializer):
labels = serializers.ListField(child=serializers.CharField(), required=False)
series = SoilRadarSeriesSerializer(many=True, required=False)
class SoilComparisonChartSerializer(serializers.Serializer):
currentValue = serializers.FloatField(required=False)
vsLastWeek = serializers.CharField(required=False, allow_blank=True)
vsLastWeekValue = serializers.FloatField(required=False)
categories = serializers.ListField(child=serializers.CharField(), required=False)
series = SoilRadarSeriesSerializer(many=True, required=False)
class SoilAnomalyItemSerializer(serializers.Serializer):
sensor = serializers.CharField(required=False, allow_blank=True)
value = serializers.CharField(required=False, allow_blank=True)
expected = serializers.CharField(required=False, allow_blank=True)
deviation = serializers.CharField(required=False, allow_blank=True)
severity = serializers.CharField(required=False, allow_blank=True)
class SoilAnomalyDetectionSerializer(serializers.Serializer):
anomalies = SoilAnomalyItemSerializer(many=True, required=False)
class SoilHeatmapPointSerializer(serializers.Serializer):
x = serializers.CharField(required=False, allow_blank=True)
y = serializers.FloatField(required=False)
class SoilHeatmapSeriesSerializer(serializers.Serializer):
name = serializers.CharField(required=False, allow_blank=True)
data = SoilHeatmapPointSerializer(many=True, required=False)
class SoilMoistureHeatmapSerializer(serializers.Serializer):
zones = serializers.ListField(child=serializers.CharField(), required=False)
hours = serializers.ListField(child=serializers.CharField(), required=False)
series = SoilHeatmapSeriesSerializer(many=True, required=False)
class SoilSummarySerializer(serializers.Serializer):
avgSoilMoisture = SoilKpiSerializer(required=False)
sensorRadarChart = SoilRadarChartSerializer(required=False)
sensorComparisonChart = SoilComparisonChartSerializer(required=False)
anomalyDetectionCard = SoilAnomalyDetectionSerializer(required=False)
soilMoistureHeatmap = SoilMoistureHeatmapSerializer(required=False)