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

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",
]