"""Product app serializers.""" from rest_framework import serializers from utils.serializers import TranslatedField from product.models import Product, ProductSubType, ProductType class ProductSubTypeBaseSerializer(serializers.ModelSerializer): """ProductSubType base serializer""" name_translated = TranslatedField() index_name_display = serializers.CharField(source='get_index_name_display') class Meta: model = ProductSubType fields = [ 'id', 'name_translated', 'index_name_display', ] class ProductTypeBaseSerializer(serializers.ModelSerializer): """ProductType base serializer""" name_translated = TranslatedField() index_name_display = serializers.CharField(source='get_index_name_display') class Meta: model = ProductType fields = [ 'id', 'name_translated', 'index_name_display', ] class ProductBaseSerializer(serializers.ModelSerializer): """Product base serializer.""" name_translated = TranslatedField() description_translated = TranslatedField() category_display = serializers.CharField(source='get_category_display') product_type = ProductTypeBaseSerializer() subtypes = ProductSubTypeBaseSerializer(many=True) class Meta: """Meta class.""" model = Product fields = [ 'id', 'name_translated', 'category_display', 'description_translated', 'available', 'product_type', 'subtypes', 'public_mark', ]