Files
booking_backend/payment/serializers.py
2026-04-10 20:51:43 -05:00

47 lines
1.4 KiB
Python

from rest_framework import serializers
from .models import PaymentRecord, WebhookEvent
class PaymentRecordSerializer(serializers.ModelSerializer):
booking_id = serializers.IntegerField(source="booking.id", read_only=True)
class Meta:
model = PaymentRecord
fields = (
"id",
"booking_id",
"stripe_payment_intent_id",
"stripe_charge_id",
"amount",
"currency",
"status",
"created_at",
"updated_at",
)
class CreatePaymentIntentSerializer(serializers.Serializer):
booking_id = serializers.IntegerField()
currency = serializers.CharField(required=False, default="usd", max_length=8)
class MockWebhookSerializer(serializers.Serializer):
stripe_event_id = serializers.CharField(max_length=255)
event_type = serializers.ChoiceField(
choices=(
"payment_intent.processing",
"payment_intent.succeeded",
"payment_intent.payment_failed",
"charge.refunded",
)
)
stripe_payment_intent_id = serializers.CharField(max_length=255)
payload = serializers.JSONField(required=False, default=dict)
class WebhookEventSerializer(serializers.ModelSerializer):
class Meta:
model = WebhookEvent
fields = ("id", "stripe_event_id", "event_type", "processed", "processed_at", "created_at")