# middleware.py
from django.utils import timezone
from .models import subscribe

class UpdateSubscriptionStatusMiddleware:

    INCLUDED_PATHS = [
        # '/API/api/subscriptions',
        # '/API/api/login_signup/vendor-register',
        # '/API/api/login_signup/vendor-otp-verify',
        # '/API/api/login_signup/vendor-login',
        # '/API/api/login_signup/vendor-password-reset-request',
        # '/API/api/login_signup/vendor-profile',
        # '/API/api/login_signup/vendorproduct',
        # '/API/api/login_signup/vendor-user-permission',
        # '/API/api/login_signup/nearby-vendors',
        # '/API/api/product/vendor-product-list',
        # '/API/api/vendor-dashboard',
        # '/API/api/dashboard',
    ]

    # EXCLUDED_PATHS = [
    #     '/API/api/product/new-arrival-product/',  
    #     '/API/api/product/category/',
    #     '/favicon.ico',
    #     '/API/api/product/product_listing/',
    # ]

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):

        # if request.path in self.EXCLUDED_PATHS:
        #     return self.get_response(request)
        if any(request.path.startswith(path) for path in self.INCLUDED_PATHS):
            subscriptions = subscribe.objects.all()
            for sub in subscriptions:
            # Update is_expired only if expiration_date is not None
                if sub.expiration_date is not None:
                    sub.is_expired = sub.check_expiration()
                    sub.save()

        return self.get_response(request)
    
        
