from django.shortcuts import redirect
from django.contrib import messages
from django.utils.translation import gettext as _
from rest_framework import viewsets
from rest_framework.decorators import action
from rest_framework.permissions import AllowAny

from .base import DummySerializer


class LogoutViewSet(viewsets.ModelViewSet):
    permission_classes = (AllowAny,)
    serializer_class = DummySerializer

    @action(detail=False, methods=['get'], url_path=r'logout')
    def logout_user(self, request):
        from django.contrib.auth import logout

        # Log the user out
        logout(request)

        # Add a success message
        messages.success(request, _("You have been successfully logged out."))
        
        print("User logged out successfully.")

        # Redirect to login page or home page
        base_domain = request.build_absolute_uri('/')
        return redirect(f'{base_domain}login/')
