integrace api, stripe, vytvoření commecre app

This commit is contained in:
2025-10-05 23:41:14 +02:00
parent f5cf8bbaa7
commit 10796dcb31
26 changed files with 436 additions and 140 deletions

View File

@@ -1,12 +1,54 @@
from rest_framework import serializers
from rest_framework import serializers
from .models import Product, Carrier, Order
class StripeCheckoutRequestSerializer(serializers.Serializer):
amount = serializers.DecimalField(max_digits=12, decimal_places=2, min_value=0.01)
product_name = serializers.CharField(required=False, default="Example Product")
success_url = serializers.URLField(required=False)
cancel_url = serializers.URLField(required=False)
from ...commerce.serializers import ProductSerializer, CarrierSerializer
class StripeCheckoutResponseSerializer(serializers.Serializer):
url = serializers.URLField()
class OrderSerializer(serializers.ModelSerializer):
product = ProductSerializer(read_only=True)
product_id = serializers.PrimaryKeyRelatedField(
queryset=Product.objects.all(), source="product", write_only=True
)
carrier = CarrierSerializer(read_only=True)
carrier_id = serializers.PrimaryKeyRelatedField(
queryset=Carrier.objects.all(), source="carrier", write_only=True
)
class Meta:
model = Order
fields = [
"id",
"product", "product_id",
"carrier", "carrier_id",
"quantity",
"total_price",
"status",
"stripe_session_id",
"created_at",
"updated_at",
]
read_only_fields = ("total_price", "status", "stripe_session_id", "created_at", "updated_at")
queryset=Product.objects.all(), source="product", write_only=True
carrier = CarrierSerializer(read_only=True)
carrier_id = serializers.PrimaryKeyRelatedField(
queryset=Carrier.objects.all(), source="carrier", write_only=True
)
class Meta:
model = Order
fields = [
"id",
"product", "product_id",
"carrier", "carrier_id",
"quantity",
"total_price",
"status",
"stripe_session_id",
"created_at",
"updated_at",
]
read_only_fields = ("total_price", "status", "stripe_session_id", "created_at", "updated_at")