from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from .models import HealthRecord from .serializers import HealthRecordSerializer from .services.mset_service import MSETService class DeviceHealthView(APIView): """设备健康度评估""" def post(self, request, device_id): service = MSETService() try: score, weights = service.evaluate_health(request.data) record = HealthRecord.objects.create( device_id=device_id, subsystem=request.data.get('subsystem'), score=score, weights=weights ) serializer = HealthRecordSerializer(record) return Response(serializer.data, status=status.HTTP_201_CREATED) except Exception as e: return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST) class HealthHistoryView(APIView): """健康度历史查询""" def get(self, request, device_id): records = HealthRecord.objects.filter(device_id=device_id).order_by('-timestamp') serializer = HealthRecordSerializer(records, many=True) return Response(serializer.data)