from rest_framework import mixins from rest_framework.viewsets import GenericViewSet from django_core.mixins.base import BaseViewSetMixin from drf_spectacular.utils import extend_schema from rest_framework.permissions import IsAuthenticated from core.apps.accounts.models import SearchHistory from core.apps.api.serializers.search import ( ListSearchHistorySerializer, RetrieveSearchHistorySerializer, CreateSearchHistorySerializer, ) @extend_schema(tags=['Search']) class SearchHistoryViewSet(BaseViewSetMixin, mixins.ListModelMixin, mixins.CreateModelMixin, mixins.DestroyModelMixin, GenericViewSet): serializer_class = ListSearchHistorySerializer permission_classes = [IsAuthenticated] http_method_names = ['get', 'post', 'delete'] action_permission_classes = {} action_serializer_class = { 'list': ListSearchHistorySerializer, 'create': CreateSearchHistorySerializer, } def get_queryset(self): queryset = SearchHistory.objects.filter(user=self.request.user) return queryset