from rest_framework import serializers from core.apps.evaluation.models import AutoEvaluationModel from core.apps.evaluation.serializers.valuation.Valuation import ListValuationSerializer from core.apps.evaluation.serializers.vehicle.Vehicle import ListVehicleSerializer class BaseAutoevaluationSerializer(serializers.ModelSerializer): class Meta: model = AutoEvaluationModel fields = [ "id", "valuation", "vehicle", ] class ListAutoevaluationSerializer(BaseAutoevaluationSerializer): valuation_info = ListValuationSerializer(source="valuation", read_only=True) vehicle_info = ListVehicleSerializer(source="vehicle", read_only=True) class Meta(BaseAutoevaluationSerializer.Meta): fields = BaseAutoevaluationSerializer.Meta.fields + [ "valuation_info", "vehicle_info", ] class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer): from core.apps.evaluation.serializers.valuation.Valuation import RetrieveValuationSerializer from core.apps.evaluation.serializers.vehicle.Vehicle import RetrieveVehicleSerializer valuation_detail = RetrieveValuationSerializer(source="valuation", read_only=True) vehicle_detail = RetrieveVehicleSerializer(source="vehicle", read_only=True) class Meta(BaseAutoevaluationSerializer.Meta): fields = BaseAutoevaluationSerializer.Meta.fields + [ "valuation_detail", "vehicle_detail", "created_at", "updated_at", ] class CreateAutoevaluationSerializer(BaseAutoevaluationSerializer): class Meta(BaseAutoevaluationSerializer.Meta): fields = [ "valuation", "vehicle", ]