Files
backend-v1/core/apps/evaluation/serializers/valuation/Valuation.py
2026-03-02 12:31:16 +05:00

65 lines
2.2 KiB
Python

from rest_framework import serializers
from core.apps.evaluation.models import ValuationModel
class BaseValuationSerializer(serializers.ModelSerializer):
status_display = serializers.CharField(source="get_status_display", read_only=True)
evaluation_type_display = serializers.CharField(source="get_evaluation_type_display", read_only=True)
payment_status_display = serializers.CharField(source="get_payment_status_display", read_only=True)
customer_name = serializers.CharField(source="customer.__str__", read_only=True)
class Meta:
model = ValuationModel
fields = [
"id",
"conclusion_number",
"customer",
"customer_name",
"evaluation_purpose",
"evaluation_type",
"evaluation_type_display",
"status",
"status_display",
"created_at",
]
class ListValuationSerializer(BaseValuationSerializer):
class Meta(BaseValuationSerializer.Meta):
fields = BaseValuationSerializer.Meta.fields + [
"final_price",
"payment_status_display",
]
class RetrieveValuationSerializer(BaseValuationSerializer):
created_by_name = serializers.CharField(source="created_by.get_full_name", read_only=True)
assigned_to_name = serializers.CharField(source="assigned_to.get_full_name", read_only=True)
class Meta(BaseValuationSerializer.Meta):
fields = BaseValuationSerializer.Meta.fields + [
"property_owner",
"created_by",
"created_by_name",
"assigned_to",
"assigned_to_name",
"evaluation_subtype",
"estimated_price",
"final_price",
"payment_status",
"payment_status_display",
"is_courier_delivery",
"courier_extra_amount",
"notes",
"updated_at",
]
class CreateValuationSerializer(BaseValuationSerializer):
class Meta(BaseValuationSerializer.Meta):
fields = [
"customer",
"property_owner",
"evaluation_purpose",
"evaluation_type",
"evaluation_subtype",
"is_courier_delivery",
"notes",
]