from rest_framework import serializers from .models import SensorDevice class HandshakeSerializer(serializers.Serializer): device_identifier = serializers.CharField(max_length=255) device_name = serializers.CharField(max_length=255, required=False, allow_blank=True) handshake_token = serializers.CharField(max_length=255, required=False, allow_blank=True) metadata = serializers.JSONField(required=False) translation_config = serializers.JSONField(required=False) class SensorIngestSerializer(serializers.Serializer): sensor_uuid = serializers.UUIDField() reading_at = serializers.DateTimeField(required=False) payload = serializers.JSONField() class SensorPayloadQuerySerializer(serializers.Serializer): limit = serializers.IntegerField(required=False, min_value=1, max_value=500, default=50) class SensorDeviceSerializer(serializers.ModelSerializer): class Meta: model = SensorDevice fields = ( "sensor_uuid", "device_identifier", "device_name", "handshake_token", "metadata", "translation_config", "is_active", "created_at", "updated_at", ) read_only_fields = ("sensor_uuid", "created_at", "updated_at")