# intendencia/middleware.py
from django.http import HttpResponseForbidden
from django.urls import reverse
from django.utils import timezone
from datetime import datetime
from django.shortcuts import redirect

class ExpirationCheckMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
        
    def __call__(self, request):
        # Fecha de expiración (cámbiala según necesites)
        expiration_date = datetime(2026, 12, 31)  # AAAA, MM, DD
        
        # Permitir acceso a la página de expiración y a archivos estáticos
        if request.path.startswith('/static/') or request.path.startswith('/media/'):
            return self.get_response(request)
            
        # Si la fecha actual es posterior a la de expiración
        if timezone.now().date() > expiration_date.date():
            # Permitir logout
            if request.path == reverse('logout'):
                return self.get_response(request)
            # Redirigir a la página de expiración
            if request.path != reverse('expired'):
                return redirect('expired')
        
        # Permitir acceso a superusuarios después de la expiración
        if request.user.is_authenticated and request.user.is_superuser:
            return self.get_response(request)
            
        return self.get_response(request)