import zoneinfo
from django.utils import timezone
from django.shortcuts import render

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

    def __call__(self, request):
        tz = request.COOKIES.get("user_tz")
        if tz:
            if request.user.is_authenticated:
                if not 'user_timezone' in request.user.user_profile.json_data or request.user.user_profile.json_data['user_timezone'] != tz:
                    request.user.user_profile.json_data['user_timezone'] = tz
                    request.user.user_profile.save(update_fields=['json_data'])

                msg = f'user={str(request.user.id)} tz={str(tz)}'
                print(msg)
            timezone.activate(zoneinfo.ZoneInfo(tz))
        else:
            timezone.activate(zoneinfo.ZoneInfo("UTC"))
        return self.get_response(request)