from datetime import datetime
from flask import request, jsonify
import logging

def check_legacy_expiration(expiration_date_str):
    """
    Interceptor que bloquea el tráfico legacy (raíz) si la fecha expiró.
    """
    try:
        # Flask asigna el prefijo que usó Apache a script_root
        # Nueva ruta: '/itg_7xR9L2m_secure'
        # Ruta Legacy: '' (vacío) o '/'
        is_legacy_route = request.script_root in ('', '/')
        
        if is_legacy_route:
            expiration_date = datetime.strptime(expiration_date_str, "%Y-%m-%d")
            
            # Si el día de hoy superó la fecha de gracia, bloqueamos
            if datetime.now() >= expiration_date:
                logging.warning(f"[MIGRACIÓN] Intento de acceso a API legacy bloqueado. Expiró el {expiration_date_str}")
                
                # Devolvemos un JSON que el móvil pueda interpretar para forzar la actualización
                return jsonify({
                    "error": "update_required",
                    "message": "La versión de su aplicación es obsoleta. Por favor, actualice en la tienda de aplicaciones."
                }), 410 # 410 = Gone (El recurso ya no está disponible)
                
        # Si es la ruta segura, o si aún estamos dentro del periodo de gracia, 
        # retornamos None para que Flask continúe hacia el Blueprint normalmente.
        return None 

    except Exception as e:
        logging.error(f"Error en validación de mantenimiento: {e}")
        # En caso de error, dejamos pasar para no botar el sistema de producción
        return None