65 lines
2.2 KiB
Python
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",
|
|
]
|