Coverage for backend/django/diagnostics/serializers.py: 100%
26 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-03-26 20:57 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-03-26 20:57 +0000
1"""Serializers for diagnostics API views."""
3from rest_framework import serializers
6class FindingFixActionSerializer(serializers.Serializer):
7 """Structured fix action payload attached to a finding."""
9 kind = serializers.ChoiceField(choices=["property_value", "scenario_patch"])
10 propertyId = serializers.IntegerField(required=False)
11 suggestedValue = serializers.FloatField(required=False)
12 disable_initialization = serializers.BooleanField(required=False)
15class FindingSerializer(serializers.Serializer):
16 """Serializer for a single finding."""
18 id = serializers.CharField(required=False)
19 severity = serializers.ChoiceField(
20 choices=["error", "warning", "info", "suggestion"]
21 )
22 title = serializers.CharField()
23 description = serializers.CharField()
24 ruleReference = serializers.CharField(required=False)
25 componentName = serializers.CharField(required=False, allow_null=True)
26 componentId = serializers.IntegerField(required=False)
27 propertyKey = serializers.CharField(required=False, allow_null=True)
28 propertyId = serializers.IntegerField(required=False)
29 suggestedFix = serializers.CharField(required=False)
30 suggestedValue = serializers.FloatField(required=False)
31 fixAction = FindingFixActionSerializer(required=False, allow_null=True)
32 ignored = serializers.BooleanField(required=False)
35class PropertyRuleFindingsSerializer(serializers.Serializer):
36 """Response serializer for property rule findings."""
38 object_id = serializers.IntegerField()
39 findings = FindingSerializer(many=True)
42class FlowsheetRuleFindingsSerializer(serializers.Serializer):
43 """Response serializer for flowsheet-wide property rule findings."""
45 flowsheet_id = serializers.IntegerField()
46 findings = FindingSerializer(many=True)