from rest_framework import serializers
from django.utils import timezone
import pytz


class LocalizedDateTimeField(serializers.DateTimeField):
        def to_representation(self, value):
            if value and timezone.is_naive(value):
                value = timezone.make_aware(value, timezone.utc)

            request = self.context.get("request")
            if request and getattr(request.user, "active_company", None):
                tz = pytz.timezone(request.user.active_company.timezone)
                value = value.astimezone(tz)

            return super().to_representation(value)