from rest_framework.generics import RetrieveUpdateAPIView, CreateAPIView
from rest_framework import permissions
from . import models as customerModel
from . import serializers
from . import permission


class CreateProfile(CreateAPIView):
    permission_classes = [permissions.AllowAny]
    serializer_class = serializers.SignupSerializer


class RetrieveUpdateProfile(RetrieveUpdateAPIView):
    queryset = customerModel.Customer.objects.all()
    serializer_class = serializers.ProfileUpdateSerializer
    permission_classes = [permission.IsRelatedCustomer]

    def get_serializer_class(self):
        if self.request.method == 'GET':
            return serializers.ProfileSerializer
        return serializers.ProfileUpdateSerializer


class CreateRequest(CreateAPIView):
    permission_classes = [permissions.AllowAny]
    serializer_class = serializers.RequestSerializer
