from django.http import JsonResponse
from django.utils.deprecation import MiddlewareMixin
from core.response import update_app_message
from api.models import AppVersion


class CheckVersionMiddleware(MiddlewareMixin):
    """
    Checks if app version is outdated.
    """

    def __call__(self, request):
        version_code = request.headers.get("versioncode")
        device_type = request.headers.get("devicetype")
        if version_code and device_type:
            try:
                current_version = AppVersion.objects.filter(deviceType=device_type).first()
                if current_version and current_version.versionCode > version_code:
                    return JsonResponse({"data": {},
                                         "message": update_app_message,
                                         "statusCode": 426,
                                         "isSuccess": False
                                         }, status=426)
            except Exception as e:
                print("Version check error:", e)
        return self.get_response(request)
