from django_core.mixins import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import AllowAny from rest_framework.viewsets import ReadOnlyModelViewSet from core.apps.api.models import ColorModel, ProductlikeModel, SizeModel from core.apps.api.serializers.attributes import ( CreateColorSerializer, CreateProductlikeSerializer, CreateSizeSerializer, ListColorSerializer, ListProductlikeSerializer, ListSizeSerializer, RetrieveColorSerializer, RetrieveProductlikeSerializer, RetrieveSizeSerializer, ) @extend_schema(tags=["size"]) class SizeView(BaseViewSetMixin, ReadOnlyModelViewSet): queryset = SizeModel.objects.all() serializer_class = ListSizeSerializer permission_classes = [AllowAny] action_permission_classes = {} action_serializer_class = { "list": ListSizeSerializer, "retrieve": RetrieveSizeSerializer, "create": CreateSizeSerializer, } @extend_schema(tags=["color"]) class ColorView(BaseViewSetMixin, ReadOnlyModelViewSet): queryset = ColorModel.objects.all() serializer_class = ListColorSerializer permission_classes = [AllowAny] action_permission_classes = {} action_serializer_class = { "list": ListColorSerializer, "retrieve": RetrieveColorSerializer, "create": CreateColorSerializer, } @extend_schema(tags=["productlike"]) class ProductlikeView(BaseViewSetMixin, ReadOnlyModelViewSet): queryset = ProductlikeModel.objects.all() serializer_class = ListProductlikeSerializer permission_classes = [AllowAny] action_permission_classes = {} action_serializer_class = { "list": ListProductlikeSerializer, "retrieve": RetrieveProductlikeSerializer, "create": CreateProductlikeSerializer, }