from django.shortcuts import redirect
from django.urls import reverse
from django.contrib import messages

class ProfileCompletionMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # اگر کاربر لاگین هست و پروفایلش کامل نیست
        if request.user.is_authenticated:
            if not request.user.is_profile_complete:
                # صفحاتی که نباید بهشون هدایت بشه
                allowed_paths = [
                    reverse('accounts:complete_profile'),
                    '/admin/',
                    '/admin/login/',
                ]
                # بررسی کنید که آیا کاربر در حال خروج هست یا نه
                if request.path not in allowed_paths and not request.path.startswith('/admin/'):
                    try:
                        return redirect('accounts:complete_profile')
                    except:
                        # اگر namespace وجود نداشت، به صفحه اصلی برگردون
                        return redirect('/')
        
        response = self.get_response(request)
        return response