Refactor commerce models and add configuration app

Major refactor of commerce models: restructured Carrier, Payment, and DiscountCode models, improved order total calculation, and integrated Zasilkovna and Stripe logic. Added new configuration Django app for shop settings, updated Zasilkovna and Stripe models, and fixed Zasilkovna client WSDL URL. Removed unused serializers and views in commerce, and registered new apps in settings.
This commit is contained in:
2025-11-14 02:21:20 +01:00
parent 052f7ab533
commit f14c09bf7a
16 changed files with 249 additions and 275 deletions

View File

@@ -2,70 +2,3 @@ from rest_framework import viewsets
from rest_framework.permissions import AllowAny
from drf_spectacular.utils import extend_schema, extend_schema_view
from .models import Category, Product, ProductImage, DiscountCode, Order, OrderItem, Carrier
from .serializers import (
CategorySerializer,
ProductSerializer,
ProductImageSerializer,
DiscountCodeSerializer,
OrderSerializer,
)
@extend_schema_view(
list=extend_schema(tags=["Commerce", "Categories"], summary="List categories"),
retrieve=extend_schema(tags=["Commerce", "Categories"], summary="Retrieve category"),
create=extend_schema(tags=["Commerce", "Categories"], summary="Create category"),
update=extend_schema(tags=["Commerce", "Categories"], summary="Update category"),
partial_update=extend_schema(tags=["Commerce", "Categories"], summary="Partial update category"),
destroy=extend_schema(tags=["Commerce", "Categories"], summary="Delete category"),
)
class CategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
permission_classes = [AllowAny]
@extend_schema_view(
list=extend_schema(tags=["Commerce", "Products"], summary="List products"),
retrieve=extend_schema(tags=["Commerce", "Products"], summary="Retrieve product"),
create=extend_schema(tags=["Commerce", "Products"], summary="Create product"),
update=extend_schema(tags=["Commerce", "Products"], summary="Update product"),
partial_update=extend_schema(tags=["Commerce", "Products"], summary="Partial update product"),
destroy=extend_schema(tags=["Commerce", "Products"], summary="Delete product"),
)
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
permission_classes = [AllowAny]
@extend_schema_view(
list=extend_schema(tags=["Commerce", "Discounts"], summary="List discount codes"),
retrieve=extend_schema(tags=["Commerce", "Discounts"], summary="Retrieve discount code"),
create=extend_schema(tags=["Commerce", "Discounts"], summary="Create discount code"),
update=extend_schema(tags=["Commerce", "Discounts"], summary="Update discount code"),
partial_update=extend_schema(tags=["Commerce", "Discounts"], summary="Partial update discount code"),
destroy=extend_schema(tags=["Commerce", "Discounts"], summary="Delete discount code"),
)
class DiscountCodeViewSet(viewsets.ModelViewSet):
queryset = DiscountCode.objects.all()
serializer_class = DiscountCodeSerializer
permission_classes = [AllowAny]
@extend_schema_view(
list=extend_schema(tags=["Commerce", "Orders"], summary="List orders"),
retrieve=extend_schema(tags=["Commerce", "Orders"], summary="Retrieve order"),
create=extend_schema(tags=["Commerce", "Orders"], summary="Create order"),
update=extend_schema(tags=["Commerce", "Orders"], summary="Update order"),
partial_update=extend_schema(tags=["Commerce", "Orders"], summary="Partial update order"),
destroy=extend_schema(tags=["Commerce", "Orders"], summary="Delete order"),
)
class OrderViewSet(viewsets.ModelViewSet):
queryset = Order.objects.all()
serializer_class = OrderSerializer
permission_classes = [AllowAny]
# TODO: CarrierViewSet & CarrierSerializer when requested