You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

37 lines
1.6 KiB

from rest_framework import serializers
from apps.account.models import LocationHistory
class LocationHistorySerializer(serializers.ModelSerializer):
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
class Meta:
model = LocationHistory
exclude = ('at_time',)
class ReverseGeolocationSerializer(serializers.Serializer):
"""Serializer for reverse geolocation request query parameters"""
lat = serializers.FloatField(
required=True,
min_value=-90.0,
max_value=90.0,
help_text="Latitude coordinate (-90 to 90)"
)
lon = serializers.FloatField(
required=True,
min_value=-180.0,
max_value=180.0,
help_text="Longitude coordinate (-180 to 180)"
)
class ReverseGeolocationResponseSerializer(serializers.Serializer):
"""Serializer for reverse geolocation response"""
latitude = serializers.FloatField(read_only=True)
longitude = serializers.FloatField(read_only=True)
city = serializers.CharField(max_length=100, allow_null=True, read_only=True)
country = serializers.CharField(max_length=100, allow_null=True, read_only=True)
country_code = serializers.CharField(max_length=10, allow_null=True, read_only=True)
accuracy_radius = serializers.IntegerField(allow_null=True, read_only=True, required=False)
time_zone = serializers.CharField(max_length=100, allow_null=True, allow_blank=True, read_only=True, required=False)
postal_code = serializers.CharField(max_length=20, allow_null=True, allow_blank=True, read_only=True, required=False)