Files
vontor-cz/backend/commerce/views.py
2025-11-12 02:12:41 +01:00

72 lines
3.1 KiB
Python

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