59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
from rest_framework import serializers
|
|
from core.apps.payment.models import PaymentModel
|
|
|
|
class BasePaymentSerializer(serializers.ModelSerializer):
|
|
payment_method_display = serializers.CharField(source="get_payment_method_display", read_only=True)
|
|
status_display = serializers.CharField(source="get_status_display", read_only=True)
|
|
payer_name = serializers.CharField(source="payer.get_full_name", read_only=True)
|
|
valuation_number = serializers.CharField(source="valuation.conclusion_number", read_only=True)
|
|
|
|
class Meta:
|
|
model = PaymentModel
|
|
fields = [
|
|
"id",
|
|
"valuation",
|
|
"valuation_number",
|
|
"payer",
|
|
"payer_name",
|
|
"amount",
|
|
"payment_method",
|
|
"payment_method_display",
|
|
"status",
|
|
"status_display",
|
|
"transaction_id",
|
|
"paid_at",
|
|
"created_at",
|
|
]
|
|
|
|
class ListPaymentSerializer(BasePaymentSerializer):
|
|
class Meta(BasePaymentSerializer.Meta):
|
|
fields = [
|
|
"id",
|
|
"valuation_number",
|
|
"payer_name",
|
|
"amount",
|
|
"payment_method_display",
|
|
"status_display",
|
|
"paid_at",
|
|
]
|
|
|
|
class RetrievePaymentSerializer(BasePaymentSerializer):
|
|
class Meta(BasePaymentSerializer.Meta):
|
|
fields = BasePaymentSerializer.Meta.fields + [
|
|
"note",
|
|
"updated_at",
|
|
]
|
|
|
|
class CreatePaymentSerializer(BasePaymentSerializer):
|
|
class Meta(BasePaymentSerializer.Meta):
|
|
fields = [
|
|
"valuation",
|
|
"payer",
|
|
"amount",
|
|
"payment_method",
|
|
"status",
|
|
"transaction_id",
|
|
"paid_at",
|
|
"note",
|
|
]
|