"""Views for app favorites.""" from rest_framework import generics from establishment.models import Establishment from establishment.filters import EstablishmentFilter from establishment.serializers import EstablishmentBaseSerializer from product.models import Product from product.serializers import ProductBaseSerializer from product.filters import ProductFilterSet from .models import Favorites class FavoritesBaseView(generics.GenericAPIView): """Base view for Favorites.""" def get_queryset(self): """Override get_queryset method.""" return Favorites.objects.by_user(self.request.user) class FavoritesEstablishmentListView(generics.ListAPIView): """List views for establishments in favorites.""" serializer_class = EstablishmentBaseSerializer filter_class = EstablishmentFilter def get_queryset(self): """Override get_queryset method""" return Establishment.objects.filter(favorites__user=self.request.user)\ .order_by('-favorites') class FavoritesProductListView(generics.ListAPIView): """List views for products in favorites.""" serializer_class = ProductBaseSerializer filter_class = ProductFilterSet def get_queryset(self): """Override get_queryset method""" return Product.objects.filter(favorites__user=self.request.user)\ .order_by('-favorites')