from django.shortcuts import render
from common.views import *
from .models import *
from .serializers import *

# Create your views here.

#Registered Device

class AddDeviceMobileView(SubscriptionPlanMixin,generics.CreateAPIView):
    authentication_classes = [APIKeyAuthentication]
    serializer_class = AddDeviceSerializer
    queryset = []

    def post(self, request, *args, **kwargs):
        print(request.data)
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        result = serializer.save()
        return result

class RegisteredDeviceListDashboardView(generics.ListCreateAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    filter_backends = [DjangoFilterBackend]
    pagination_class = StandardSetPagination
    queryset = RegisteredDevice.objects.all()
    serializer_class = RegisteredDeviceSerializer

class RegisteredDeviceDetailDashboardView(generics.RetrieveUpdateDestroyAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    filter_backends = [DjangoFilterBackend]
    lookup_field = "id"
    queryset = RegisteredDevice.objects.all()
    serializer_class = RegisteredDeviceSerializer


#User Nav
class UserNavListMobileView(generics.CreateAPIView):
    authentication_classes = [APIKeyAuthentication]
    filter_backends = [DjangoFilterBackend]
    queryset = UserNav.objects.all()
    serializer_class = UserNavSerializer

class UserNavListDashboardView(generics.ListCreateAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    filter_backends = [DjangoFilterBackend]
    queryset = UserNav.objects.all()
    serializer_class = UserNavSerializer

class UserNavDetailDashboardView(generics.RetrieveUpdateDestroyAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    lookup_field = "id"
    queryset = UserNav.objects.all()
    serializer_class = UserNavSerializer