to_inventory/back/inventory/serializers.py

57 lines
1.5 KiB
Python

from rest_framework import serializers
from rest_framework.validators import UniqueValidator
from .models import Element, InventoryItem, Partner
import logging
logger = logging.getLogger("root")
class PartnerSerializer(serializers.ModelSerializer):
total_inventory = serializers.SerializerMethodField()
class Meta:
model = Partner
fields = ["id", "external_id", "name", "total_inventory"]
def get_total_inventory(self, instance):
return InventoryItem.objects.filter(partner=instance).count()
class InventorySerializer(serializers.ModelSerializer):
partner_name = serializers.CharField(source="partner.name", read_only=True)
total_elements = serializers.SerializerMethodField()
class Meta:
model = InventoryItem
fields = [
"id",
"name",
"created_at",
"total_elements",
"partner",
"partner_name",
]
def get_total_elements(self, instance):
return Element.objects.filter(inventory=instance).count()
class ElementSerializer(serializers.ModelSerializer):
inventory_name = serializers.CharField(source="inventory.name", read_only=True)
element_id = serializers.CharField(
max_length=100,
validators=[UniqueValidator(queryset=Element.objects.all())]
)
class Meta:
model = Element
fields = [
"id",
"external_id",
"element_id",
"photo",
"additional_text",
"inventory",
"inventory_name",
]