Files
Ai/sensor_data/serializers.py
T

57 lines
1.9 KiB
Python
Raw Normal View History

from rest_framework import serializers
from .models import SensorData, SensorParameter
class SensorDataUpdateSerializer(serializers.Serializer):
"""سریالایزر ورودی برای آپدیت داده سنسور."""
location_id = serializers.IntegerField(required=True)
soil_moisture = serializers.FloatField(required=False, allow_null=True)
soil_temperature = serializers.FloatField(required=False, allow_null=True)
soil_ph = serializers.FloatField(required=False, allow_null=True)
electrical_conductivity = serializers.FloatField(required=False, allow_null=True)
nitrogen = serializers.FloatField(required=False, allow_null=True)
phosphorus = serializers.FloatField(required=False, allow_null=True)
potassium = serializers.FloatField(required=False, allow_null=True)
2026-03-19 22:54:29 +03:30
plant_ids = serializers.ListField(
child=serializers.IntegerField(),
required=False,
help_text="لیست شناسه گیاهان مرتبط",
)
class SensorDataResponseSerializer(serializers.ModelSerializer):
"""سریالایزر خروجی برای SensorData."""
2026-03-19 22:54:29 +03:30
plant_ids = serializers.PrimaryKeyRelatedField(
source="plants",
many=True,
read_only=True,
)
class Meta:
model = SensorData
fields = [
"uuid_sensor",
"location_id",
"soil_moisture",
"soil_temperature",
"soil_ph",
"electrical_conductivity",
"nitrogen",
"phosphorus",
"potassium",
2026-03-19 22:54:29 +03:30
"plant_ids",
"created_at",
"updated_at",
]
class SensorParameterSerializer(serializers.Serializer):
"""سریالایزر ورودی برای اضافه کردن پارامتر جدید."""
code = serializers.CharField(max_length=64)
name_fa = serializers.CharField(max_length=128)
unit = serializers.CharField(max_length=32, required=False, allow_blank=True)