Files
chat_backend/llm_be/finance/serializers.py
T
westfarn f92bd268b3
CI / test (pull_request) Successful in 9s
Unit Tests / test (pull_request) Successful in 10s
Add finance app with Stripe Checkout subscriptions (#21)
Introduce Invoice/Payment ledger models, $10/mo settings-backed pricing,
hosted Checkout + signed webhooks, Django admin, and authenticated list APIs.
2026-07-26 19:16:34 -05:00

52 lines
1.3 KiB
Python

from rest_framework import serializers
from finance.models import Invoice, Payment
class InvoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Invoice
fields = [
"id",
"provider",
"status",
"currency",
"amount_due",
"amount_paid",
"period_start",
"period_end",
"stripe_invoice_id",
"stripe_checkout_session_id",
"stripe_subscription_id",
"hosted_invoice_url",
"description",
"created",
"last_modified",
]
read_only_fields = fields
class PaymentSerializer(serializers.ModelSerializer):
class Meta:
model = Payment
fields = [
"id",
"invoice",
"provider",
"status",
"currency",
"amount",
"stripe_payment_intent_id",
"stripe_charge_id",
"paid_at",
"failure_message",
"created",
"last_modified",
]
read_only_fields = fields
class CheckoutSessionSerializer(serializers.Serializer):
success_url = serializers.URLField(required=False, allow_blank=False)
cancel_url = serializers.URLField(required=False, allow_blank=False)