from django.shortcuts import render
from rest_framework import generics
from .models import *
from .serializers import *
from django_filters.rest_framework import DjangoFilterBackend
from common.views import *

# Create your views here.
# Calender

# Todo


class TodoListMobileView(SubscriptionPlanMixin, generics.ListCreateAPIView):
    authentication_classes = [
        APIKeyAuthentication,
        MobileTokenAuthentication,
    ]
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["medicalProfileId"]
    pagination_class = StandardSetPagination
    queryset = Todo.objects.all().order_by("dateTime").order_by("isDone")
    serializer_class = TodoSerializer


class TodoDetailMobileView(
    SubscriptionPlanMixin, generics.RetrieveUpdateDestroyAPIView
):
    authentication_classes = [
        APIKeyAuthentication,
        MobileTokenAuthentication,
    ]
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["medicalProfileId"]
    lookup_field = "id"
    queryset = Todo.objects.all()
    serializer_class = TodoSerializer


class TodoListDashboardView(generics.ListCreateAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["medicalProfileId"]
    pagination_class = StandardSetPagination
    queryset = Todo.objects.all().order_by("dateTime").order_by("isDone")
    serializer_class = TodoSerializer


class TodoDetailDashboardView(generics.RetrieveUpdateDestroyAPIView):
    authentication_classes = [APIKeyAuthentication, DashboardTokenAuthentication]
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ["medicalProfileId"]
    lookup_field = "id"
    queryset = Todo.objects.all()
    serializer_class = TodoSerializer
