from rest_framework import viewsets
from .models import Cliente
from .serializers import ClienteSerializer
from .models import Usuario
from .serializers import UsuarioSerializer
from .models import Motorista
from .serializers import MotoristaSerializer
from .models import Fornecedor
from .serializers import FornecedorSerializer
from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response


class ClienteViewSet(viewsets.ModelViewSet):
    queryset = Cliente.objects.all()
    serializer_class = ClienteSerializer


class UsuarioViewSet(viewsets.ModelViewSet):
    queryset = Usuario.objects.all()
    serializer_class = UsuarioSerializer


class MotoristaViewSet(viewsets.ModelViewSet):
    queryset = Motorista.objects.all()
    serializer_class = MotoristaSerializer


class FornecedorViewSet(viewsets.ModelViewSet):
    queryset = Fornecedor.objects.all()
    serializer_class = FornecedorSerializer



class MotoristaAuthView(APIView):
    def post(self, request):
        login = request.data.get('login')
        senha = request.data.get('senha')

        try:
            motorista = Motorista.objects.get(login=login, senha=senha)
            return Response({
                'motorista_id': motorista.id,
                'cliente_id': motorista.cliente.id,
                'nome': motorista.nome
            }, status=status.HTTP_200_OK)
        except Motorista.DoesNotExist:
            return Response({'error': 'Credenciais inválidas'}, status=status.HTTP_401_UNAUTHORIZED)