Files
dealerhub/backend/apps/openapi/serializers.py
T

35 lines
1.4 KiB
Python

from rest_framework import serializers
from apps.core.serializers import AsyncModelSerializer
from .models import APIKey
class APIKeySerializer(AsyncModelSerializer):
class Meta:
model = APIKey
fields = [
"id", "name", "prefix", "scopes", "is_active",
"rate_limit", "expires_at", "last_used_at",
"created_at", "updated_at",
]
read_only_fields = ["id", "prefix", "last_used_at", "created_at", "updated_at"]
class APIKeyCreateInputSerializer(serializers.Serializer):
name = serializers.CharField(max_length=128)
scopes = serializers.ListField(child=serializers.CharField(), required=False)
expires_at = serializers.DateTimeField(required=False, allow_null=True)
rate_limit = serializers.IntegerField(required=False, min_value=1)
class ExternalOrderLineInputSerializer(serializers.Serializer):
product_code = serializers.CharField(max_length=64)
quantity = serializers.DecimalField(max_digits=18, decimal_places=4)
unit_price = serializers.DecimalField(max_digits=18, decimal_places=4, required=False)
class ExternalOrderCreateSerializer(serializers.Serializer):
customer_code = serializers.CharField(max_length=64)
warehouse_code = serializers.CharField(max_length=64, required=False)
remark = serializers.CharField(max_length=255, required=False, allow_blank=True, default="")
lines = ExternalOrderLineInputSerializer(many=True)