Files
Logic/Modules/Ai/farm_alerts/serializers.py
T
2026-05-11 03:27:21 +03:30

52 lines
2.1 KiB
Python

from rest_framework import serializers
from .models import FarmAlertNotification
class IncomingAlertSerializer(serializers.Serializer):
alert_id = serializers.CharField(required=False, allow_blank=True, help_text="شناسه هشدار")
level = serializers.CharField(required=False, allow_blank=True, help_text="سطح هشدار")
title = serializers.CharField(required=False, allow_blank=True, help_text="عنوان هشدار")
message = serializers.CharField(required=False, allow_blank=True, help_text="متن هشدار")
suggested_action = serializers.CharField(required=False, allow_blank=True, help_text="اقدام پیشنهادی")
source_metric_type = serializers.CharField(required=False, allow_blank=True, help_text="نوع شاخص")
timestamp = serializers.DateTimeField(required=False, allow_null=True, help_text="زمان هشدار")
payload = serializers.JSONField(required=False, help_text="داده تکمیلی هشدار")
class FarmAlertsRequestSerializer(serializers.Serializer):
farm_uuid = serializers.CharField(required=False, help_text="شناسه مزرعه")
alerts = IncomingAlertSerializer(
many=True,
required=False,
help_text="لیست هشدارهای ورودی که باید در تحلیل RAG در نظر گرفته شوند",
)
def validate(self, attrs):
farm_uuid = attrs.get("farm_uuid")
if not farm_uuid:
raise serializers.ValidationError({"farm_uuid": "farm_uuid الزامی است."})
attrs["farm_uuid"] = farm_uuid
attrs["alerts"] = attrs.get("alerts") or []
return attrs
class FarmAlertNotificationSerializer(serializers.ModelSerializer):
class Meta:
model = FarmAlertNotification
fields = [
"id",
"farm_uuid",
"endpoint",
"level",
"title",
"message",
"suggested_action",
"source_alert_id",
"source_metric_type",
"payload",
"created_at",
"updated_at",
]
read_only_fields = fields